Python 3 如果语句调用错误的函数

-1 投票
4 回答
1426 浏览
提问于 2025-04-17 06:37
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()函数将字符串转换成整数,正如其他回答中提到的那样。

撰写回答