在Python中,0==(1或0)返回False。为什么它不返回True?
我想看看一个函数是否返回一个整数,该整数的值应该是 1 或 0。
0 == (1 or 0)
0 等于 1 或 0,这听起来应该是真的,但事实并非如此。
为什么?以及如何正确地做我想做的事?
回答
0 == (1 or 0) 被解析为这棵树:
==
/
0 or
/
1 0
1 or 0结果为1,因为or返回两个操作数的第一个真值(并且1是真值)。
之后,我们只剩下 了0 == 1,这显然是 False。
您想要做的是检查是否0是您可以通过序列检查执行的值之一:0 in (0, 1)
THE END
二维码