如果是其他方法,则给出意外结果

时间:2019-04-10 11:18:50

标签: python-3.x

m = 5
if m == 1 or 4:
    print("x") 
else:
    print("y")

我希望此代码打印y,而不是x。

3 个答案:

答案 0 :(得分:4)

4的计算结果为true,因此结果为

m = 5
if m == 1 or m == 4:
    print("x") 
else:
    print("y")

Fiddle

答案 1 :(得分:2)

除零以外的数字是隐式的True。 阅读Operator precedence

您写的实际上是翻译为:

m = 5
if (m == 1) or True:
    print("x") 
else:
    print("y")

您的if将始终为True。

答案 2 :(得分:1)

尝试:

if m == 1 or m == 4:

相反。