为什么此代码只返回“问候!”不管输入什么?

问题描述 投票:0回答:2

我正在研究“使无聊的东西自动化”一书中的一些练习题,而我正努力理解为什么下面的代码仅产生“问候!”作为输出。

print('What does spam equal? Hint: Try a number between 1 and 3')
spam = input()
if spam == 1:
    print('Hello')
elif spam == 2:
    print('Howdy')
else:
    print('Greetings!')
python
2个回答
0
投票

这是因为input()返回的字符串永远不会等于整数。尝试

spam = int(input())

相反。如果输入的不是整数,则当然会抛出TypeError


0
投票

这样做是因为您提供的输入内容作为字符串存储在spam中。而且,当您使用if else语句时,它将与整数进行比较,但是您的实际值是一个字符串,因此,结果总是出现在最终的else语句中Greetings!

因此,请改用spam=int(input())

© www.soinside.com 2019 - 2024. All rights reserved.