输入含空格时Python代码抛出ValueError,如何适配空格字符?
问题修复方案
原代码存在两个核心问题:
- 空格处理逻辑缺失,遇到空格时会触发
ValueError - 循环索引逻辑混乱,导致字母转换对应错误(比如输入"Cat"得到错误结果"wzg")
错误原因拆解
- 空格报错原因:原代码在循环中错误地判断前一个字符是否为字母,却对当前字符执行索引查找,当遇到空格时,
alphabets.index(' ')必然报错,且没有保留空格的逻辑。 - 字母转换错误原因:原循环从
range(-1, len(get_all_letters)-1)开始,索引操作逻辑混乱,导致字符与反向字母表的对应关系错位。
修复后的代码
import string # 获取小写字母表和反向字母表 alphabets = string.ascii_lowercase reversed_alphabets = alphabets[::-1] # 获取用户输入并转为小写 input_str = input().lower() result = [] for char in input_str: if char == ' ': # 空格直接保留 result.append(' ') elif char in alphabets: # 找到当前字母在原字母表的索引,取反向字母表对应位置的字符 idx = alphabets.index(char) result.append(reversed_alphabets[idx]) # 拼接结果并输出 print(''.join(result))
验证结果
- 输入
Hello World→ 输出svool dilow(符合预期) - 输入
Cat→ 输出xzg(符合预期) - 输入
ca t→ 输出xz g(符合预期)
内容的提问来源于stack exchange,提问作者Dragon RB
相关产品推荐
相关产品推荐

