Python 3 如果语句调用错误的函数
if action == 1:
forage()
elif action == 2:
forage()
else:
display()
我不知道自己在做什么的情况下,我遇到了这样的问题:每当我输入1或2的时候,它会调用display()这个函数,而不是调用forage()。
抱歉如果这个问题太简单,不值得在Stackoverflow上提问,但我经常遇到这个问题,想一次性解决它,却找不到办法。希望你们能帮帮我。
4 个回答
0
尝试一下:
action = int(input("What do you want to do? "))
3
有可能这个动作是字符串 '1'
而不是整数 1
吗?
7
这是关于Python 2和Python 3之间的区别。在Python 2中,使用input
函数时,输入的字符串会被当作Python表达式来计算,所以如果你输入的是数字1,它会返回整数1,这样你的例子就能按预期工作了。而在Python 3中,input
函数会直接返回你输入的字符串,比如说你输入的'1'
,它不会进行计算。因此,在Python 3中,你需要检查的是字符串的值,而不是整数的值。或者可以使用int()
函数将字符串转换成整数,正如其他回答中提到的那样。