我正在研究《自动化无聊的东西》一书中的一些练习问题,我很难理解为什么下面的代码只生成“问候!” 作为输出。
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!')
这是因为input()
返回一个字符串,该字符串永远不等于整数。 试试看
spam = int(input())
取而代之的是。 如果输入不是整数,这当然会抛出valueerror
。
之所以会这样,是因为您作为输入给出的内容在spam
中作为字符串存储。 当您使用if else语句时,它将与整数进行比较,但您的实际值是一个字符串,因此它总是在最后的else语句中打印greetings!
因此使用spam=int(input())
代替。