Python根据数字获取字母的代码无法识别26(对应z)问题排查
问题分析与修复:输入26无输出的字母映射代码
你的代码问题出在第一个条件的判断逻辑上:
- 字符串
alpha的长度是26,当输入数字26时,0 < letter < len(alpha)等价于0 < 26 < 26,这个判断结果是False - 后续的
elif letter > len(alpha)判断的是“数字大于26”,26并不满足这个条件 - 因此没有任何分支被执行,也就不会产生输出
修复方案
只需要把第一个条件的上限从小于改为小于等于,让合法输入26能进入正确的分支:
alpha = "abcdefghijklmnopqrstuvwxyz" letter = int(input('Input number of letter needed from alphabet (between 1 and 26): ')) if 0 < letter <= len(alpha): print(alpha[letter - 1]) elif letter <= 0: print('Number is smaller than number of letters in the alphabet.') elif letter > len(alpha): print("Number is larger than number of letters in the alphabet")
这样输入26时,会正确计算alpha[26-1]也就是alpha[25],输出字母z;输入大于26的数字时,依然会触发最后一个分支的提示。
内容的提问来源于stack exchange,提问作者Rodolf
相关产品推荐
相关产品推荐

