XOR运营商没有给出预期的结果?

New*_*101 1 python operators xor

我熟悉在Python中使用'和','not'和'或'运算符,我刚学会了'XOR'运算符的工作原理.

但是,当我编码时,它似乎不起作用:

a = 2
b = 12

if a == 2 ^ b == 12:
    print("You must be broken") # because TRUE XOR TRUE IS FALSE

if a == 10 ^ b > 12:
    print("You must also be broken") # because FALSE XOR FALSE IS FALSE

if a < 10 ^ b > 13:
    print("This should print because TRUE XOR FALSE IS TRUE")

if a > 3 ^ b == 12:
    print("This should print because FALSE XOR TRUE IS TRUE")
Run Code Online (Sandbox Code Playgroud)

该程序不打印任何东西?

khe*_*ood 8

您误解了Python的运算符优先级.

这个条件:

a < 10 ^ b > 13
Run Code Online (Sandbox Code Playgroud)

手段

a < (10^b) > 13
Run Code Online (Sandbox Code Playgroud)

意思是

(a < 10^b) and (10^b > 13)
Run Code Online (Sandbox Code Playgroud)

所以这是错误的.

大概你的意思是:

(a < 10) ^ (b > 13)
Run Code Online (Sandbox Code Playgroud)

同样适合您的其他条件.