我做了一个简单的print
函数,它只是检查4 * 5 = 20 is True
。
我为什么得到False
?
result = 20
Num1 = 4
Num2 = 5
print(Num1*Num2 == result is True)
答案 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 < 10
与1 < x and x < 10
等效的方式。之所以会发生这种情况,是因为==
和is
都被视为比较运算符,并且按顺序将两个比较运算符按顺序链接在一起。
由于result is True
返回False,所以总体结果为False。
通常,您不应该写x is True
,而只需写x
。这里:print(Num1*Num2 == result)
。