为什么我会虚假?

时间:2019-12-25 17:05:23

标签: python

我做了一个简单的print函数,它只是检查4 * 5 = 20 is True

我为什么得到False

result = 20
Num1 = 4
Num2 = 5

print(Num1*Num2 == result is True)

2 个答案:

答案 0 :(得分:3)

检查:

result = 20
Num1 = 4
Num2 = 5

print(Num1*Num2 == result is True)
#False
print((Num1*Num2 == result) is True)
#True
print((Num1*Num2) == (result is True))
#False

您可以通过将括号放在正确的位置来解决此问题。

答案 1 :(得分:1)

Num1*Num2 == result is True是运算符链接的一个示例,等效于:

(Num1*Num2 == result) and (result is True)

这类似于1 < x < 101 < x and x < 10等效的方式。之所以会发生这种情况,是因为==is都被视为比较运算符,并且按顺序将两个比较运算符按顺序链接在一起。

由于result is True返回False,所以总体结果为False。

通常,您不应该写x is True,而只需写x。这里:print(Num1*Num2 == result)