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

sbb*_*bb0 -1 python if-statement function

if action == 1:
    forage()
elif action == 2:
    forage()
else:
    display()
Run Code Online (Sandbox Code Playgroud)

在不知道我正在尝试做的事情的背景下,这是我的问题:每当我输入1或2时,它调用display()而不是调用forage().

很抱歉,如果这个问题太愚蠢而不是我想的Stackoverflow材料,但我似乎很多地遇到这个问题,我希望它一劳永逸地解决,似乎无法找到解决方案.希望你们能帮助我.

Ned*_*ily 7

这是Python 2和Python 3之间区别.在Python 2中,input函数将字符串输入计算为Python表达式并返回整数1,以便您的示例按预期工作.在Python 3中,input将返回未评估的字符串输入,例如'1'.因此,对于Python 3,您需要针对字符串值进行测试,而不是整数值.或者使用int()其他答案中的建议将字符串转换为整数.