同样(-1 == - 1& 1 == 1)也是假的。
道歉,如果这是显而易见的事情,但我无法找到解释。
答案 0 :(得分:14)
dplyr
是按位AND 运算符。正如documentation中所提到的,Bitwise运算符的优先级高于逻辑运算符,因此
&
变为
0 == 0 & 1 == 1
你可以想象它从那里走下坡路:
0 == (0 & 1) == 1
假设你想要的是一个逻辑AND ,那么python方式就是使用 0 == (0 & 1) == 1
=> 0 == 0 == 1
=> 0 == 0 and 0 == 1
=> True and False
=> False
:
and
正如您所期望的那样,0 == 0 and 1 == 1
为您提供。
答案 1 :(得分:5)
让我们分手吧。
这里的最高优先级标志是括号。除了我们包装整个表达式,所以他们什么都不做。
接下来,我们使用按位运算符&
。
0 & 1
等于0
。
这给我们留下了0 == 0 == 1
由于0
不等于1
,我们会得到False
。
供参考,这里是关于operator precedence的python文档。