if action == 1:
forage()
elif action == 2:
forage()
else:
display()
在不知道我正在尝试做的事情的背景下,这是我的问题:每当我输入1或2时,它调用display()而不是调用forage()。
很抱歉,如果这个问题太过于愚蠢而不是我想的Stackoverflow资料,但我似乎很多地遇到了这个问题,我希望它一劳永逸地解决,而且似乎无法找到解决方案。希望你们能帮助我。
答案 0 :(得分:7)
这是difference between Python 2 and Python 3。在Python 2中,the input
function会将字符串输入计算为Python表达式并返回整数1,因此您的示例将按预期工作。在Python 3中,input
将返回未评估的字符串输入,例如'1'
。因此,对于Python 3,您需要针对字符串值进行测试,而不是整数值。或者使用int()
将字符串转换为整数,如其他答案所示。
答案 1 :(得分:3)
动作是字符串'1'
而不是整数1
吗?
答案 2 :(得分:0)
尝试:
action = int(input("What do you want to do? "))
答案 3 :(得分:0)
调试提示:检查您的输入。
print(
type(action), ascii(action),
type(1), ascii(1),
type('1'), ascii('1'),
'1' == 1
)
Python 2:使用repr()
代替ascii()