Python 3.x If-else方法给出意外结果

Python 3.x If-else方法给出意外结果,python-3.x,Python 3.x,我希望此代码打印y,而不是x。4的计算结果为true,因此结果为true m = 5 if m == 1 or 4: print("x") else: print("y") 试试: m = 5 if m == 1 or m == 4: print("x") else: print("y") 相反。除零之外的数字是隐式真值。 通读 您所写的内容实际上转化为: m=5 如果(m==1)或为真: 打印(“x”) 其他: 打印(“y”) 你的if总是正确的。我看

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

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

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

试试:

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

相反。

除零之外的数字是隐式真值。 通读

您所写的内容实际上转化为:

m=5
如果(m==1)或为真:
打印(“x”)
其他:
打印(“y”)

你的
if
总是正确的。

我看不出有理由否决这个问题。当然,一个高级程序员,能够像Python解析器一样在头脑中解析Python,将能够发现错误。没有必要因为人们(还)不知道事情而惩罚他们。
if m == 1 or m == 4: