Python 0是0==0(#计算结果为真?)
这使我困惑。即使不知道优先顺序,也可以检查收集表达式的两种可能方法是否会给出Python 0是0==0(#计算结果为真?),python,python-3.x,Python,Python 3.x,这使我困惑。即使不知道优先顺序,也可以检查收集表达式的两种可能方法是否会给出False: >>> (0 is 0) == 0 False >>> 0 is (0 == 0) False 但是 为什么?您正在使用比较运算符链接。该表达式被解释为: (0 is 0) and (0 == 0) 从: 比较可以任意链接,例如,x
False
:
>>> (0 is 0) == 0
False
>>> 0 is (0 == 0)
False
但是
为什么?您正在使用比较运算符链接。该表达式被解释为:
(0 is 0) and (0 == 0)
从:
比较可以任意链接,例如,
xx?Yz
(其中?
和?
应该代表一些比较运算符)既不等于(x?y)??z
或x?(y??z)
,而是x?y和y??z
这对于
和co特别有用,允许您编写min
之类的东西,并让它做您想做的事情,而不是将布尔值与数字进行比较(这在大多数其他语言中都会发生)。这必须是一个重复,但是0是0==0
被解析为(0是0)和(0==0)
,就像a==b==c
被解析为a==b和b==c
@PaulHankin一样,你应该把它作为一个asn来处理,看看这篇文章:
(0 is 0) and (0 == 0)