Python编程求助:实现文本行单词反转程序时出现报错
问题分析与修复
你的代码存在几个问题,导致报错或结果不符合预期:
- 变量大小写不统一:定义了
W=''但后续使用w,Python对大小写敏感,会触发NameError - 错误使用索引值:内层循环里
b是字符的索引位置,不是字符本身,直接拼接b会把数字索引加到结果里,而非原字符 - 空格添加时机错误:每个字符后都加空格会导致结果混乱,应该在每个反转后的单词后加空格
修复后的简洁版代码
a = input("Enter the line: ") result = '' words = a.split() for word in words: # 用字符串切片快速反转单词 reversed_word = word[::-1] result += reversed_word + ' ' # 移除末尾多余空格 print(result.strip())
保留手动循环的修正版(适配课本练习思路)
a = input("Enter the line: ") w = '' s = a.split() for i in s: q = len(i) reversed_word = '' # 遍历单词的逆序索引,拼接成反转后的单词 for b in range(q-1, -1, -1): reversed_word += i[b] w += reversed_word + ' ' print(w.strip())
说明
- 字符串切片
word[::-1]是Python中反转字符串的快捷写法,从最后一个字符开始逆序截取所有字符 - 手动循环版本先单独完成单个单词的反转,再将反转后的单词拼接,最后用
strip()清理末尾多余的空格
内容的提问来源于stack exchange,提问作者Akshat Parmar
相关产品推荐
相关产品推荐

