Skip to main content
 首页 » 编程设计

python之如果字典中的键在键存在时返回 false

2025年05月04日11jyk

python 3.2

这可能真的很愚蠢但是:

items = {'1': 'ACK', '2': 'RELQ', '3': 'COM'} 
choice = input('Choose an option:\n1.ACK\n2.RELQ\n3.COM\n') 
print(choice) 
if choice in items: 
    print(choice) 
    option = items[choice] 
else: 
    print('Input not recognized') 

如果你输入 1 它会一直返回

1 
Input not recognized 

choice in items 返回 false?

这应该很简单,但我就是看不出它是什么。

更新:

print(type(choice))` returns str 
 
print(len(choice)) returns 2 
 
print(repr(choice)) returns '1\r' 
print(choice[0]) returns 1 

输入正在通过 input() 接收一个\r 换行符

请您参考如下方法:

可能它获取了换行符,所以为了让您的代码正常工作,您应该修剪 choices 变量。或者,如果您的字典键是整数而不是字符串,您可以只执行强制转换操作。

编辑: 你最后的评论证明了我的观点,因为 [49, 13] 数字 - 13 是回车的 ascii 码。

只需添加:

choice = choice.strip() 

在 if choice in items 之前: