从Java背景到Python并通过CodingBat( Python > Warmup-1 > pos_neg )进行以下操作我非常困惑:
>>> True ^ False
True
>>> 1<0 ^ -1<0
False
我很欣赏以下内容:
>>> (1<0) ^ (-1<0)
True
但是什么是python解释1<0 ^ -1<0
以返回false?
答案 0 :(得分:4)
^
有higher precedence而不是<
。
因此,正在评估的内容实际为1 < -1 < 0
,其中0 ^ -1 = -1
因此你正确得到False
,因为不平等显然不成立。
您几乎不必记住优先级表。只是巧妙地使用括号。
您可能也想检查this,这讨论了相同的情况。
答案 1 :(得分:1)
0 ^ -1
等于-1
。 1 < -1 < 0
为False
,因为1大于-1。 Python自然地链接关系运算符,因此1 < -1 < 0
等同于(1 < -1) and (-1 < 0)
。