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)
该程序不打印任何东西?
您误解了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)
同样适合您的其他条件.