两个整数的python异或

时间:2014-09-25 13:43:49

标签: python xor

从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?

2 个答案:

答案 0 :(得分:4)

^higher precedence而不是<

因此,正在评估的内容实际为1 < -1 < 0,其中0 ^ -1 = -1

因此你正确得到False,因为不平等显然不成立。

您几乎不必记住优先级表。只是巧妙地使用括号。

您可能也想检查this,这讨论了相同的情况。

答案 1 :(得分:1)

0 ^ -1等于-11 < -1 < 0False,因为1大于-1。 Python自然地链接关系运算符,因此1 < -1 < 0等同于(1 < -1) and (-1 < 0)