转载链接: ​​https://zhuanlan.zhihu.com/p/96147159​​ 

A B 同时为 True和False时, xor结果为 False, 否则为True

Python逻辑运算符 异或xor_按位异或


0 ^ 0 => 0
0 ^ 1 => 1
1 ^ 0 => 1
1 ^ 1 => 0

试一下 0,1 以外的数字

5 ^ 3 => 6

为什么是6, 而不是1呢?

异或 是基于 二进制按位异或的结果

​过程: 把5和3转成二进制, 进行按位异或

5 = 0101(b)

3 = 0011(b)

0 ^ 0 -> 0

1 ^ 0 -> 1

0 ^ 1 -> 1

1 ^ 1 -> 0

排起来就是0110(b) 转换为十进制:6

​具体的用法:

本来我们想把一个flag在True和False之间转换 需要这么写:

flag = True
if something:
flag = False if flag else True

而用异或直接这么写就可以了:

flag = False
if something:
flag ^= True