提问者:小点点

为什么这段代码只返回“greetings!” 不考虑输入? [副本]


我正在研究《自动化无聊的东西》一书中的一些练习问题,我很难理解为什么下面的代码只生成“问候!” 作为输出。

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!')

共2个答案

匿名用户

这是因为input()返回一个字符串,该字符串永远不等于整数。 试试看

spam = int(input())

取而代之的是。 如果输入不是整数,这当然会抛出valueerror

匿名用户

之所以会这样,是因为您作为输入给出的内容在spam中作为字符串存储。 当您使用if else语句时,它将与整数进行比较,但您的实际值是一个字符串,因此它总是在最后的else语句中打印greetings!

因此使用spam=int(input())代替。