在 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)

1 or 0的计算结果为1,由于0不等于1,因此表达式为false。

我怀疑你想做的是0 == 0 or 1 == 0

您使用的是方括号。这意味着你在强制它的优先级。所以python将首先计算表达式1 or 0,它是1。然后它将评估下一部分0 == 1,该部分为假。

相关内容

  • 没有找到相关文章

最新更新