Python使用for循环实现句子按单词反转的空格问题排查
解决单词反转后无空格的问题
你的代码核心问题是只拼接了单词,没有添加单词之间的空格分隔符,所以反转后的单词直接连在了一起。
修改方案
用split()默认分割空白(比split(" ")更健壮,能处理多个空格、制表符等场景),每次拼接单词时带上空格,最后用strip()去掉首尾多余的空格:
def reverse(text): rev = "" for word in text.split(): rev = word + " " + rev return rev.strip() # 测试 test_text = "hello how are you" print(reverse(test_text)) # 输出: you are how hello
原理说明
text.split():自动按任意空白字符分割句子,得到干净的单词列表["hello", "how", "are", "you"]- 循环中每次把当前单词加空格后拼到结果前面,比如第一次循环后
rev是"hello ",第二次变成"how hello ",依次类推 rev.strip():去掉结果首尾的多余空格,确保输出格式符合预期
如果必须限定用split(" ")(比如只处理单个空格的场景),可以先过滤掉分割后产生的空字符串(比如句子首尾有空格时),再按同样逻辑处理:
def reverse(text): rev = "" for word in text.split(" "): if word: # 跳过空字符串 rev = word + " " + rev return rev.strip()
内容的提问来源于stack exchange,提问作者PieCharmer
相关产品推荐
相关产品推荐

