python3if语句调用了错误的函数

2024-06-26 14:52:34 发布

您现在位置:Python中文网/ 问答频道 /正文

if action == 1:
    forage()
elif action == 2:
    forage()
else:
    display()

在不知道我要做什么的上下文的情况下,我的问题是:每当我输入1或2时,它都会调用display()而不是调用founder()。在

对不起,如果这个问题太蠢了,我想是堆垛溢出的材料,但我似乎得到了这个问题很多,我希望它解决一次,并没有找到一个解决办法。希望你们能帮我。在


Tags: ifdisplay情况actionelse材料elif堆垛
3条回答

操作是否可能是字符串'1'而不是整数1?在

这是一个difference between Python 2 and Python 3。在python2中,the ^{} function将把字符串输入作为Python表达式来计算,并返回整数1,这样您的示例将如您所期望的那样工作。在Python3中,^{}将返回键入的未赋值字符串,例如'1'。因此,对于python3,您需要针对字符串值而不是整数值进行测试。或者按照其他答案中的建议,使用int()将字符串转换为整数。在

调试提示:检查输入。在

print(
    type(action), ascii(action),
    type(1), ascii(1),
    type('1'), ascii('1'),
    '1' == 1
    )

python2:使用repr()代替ascii()

相关问题 更多 >