Python 中 (&,|)和(and,or)之间的区别
(&,|) 和 (and,or)是两组比较相似的运算符。他们的用法如下:
1 | a & b |
(1)如果a,b是数值变量, 则&、|表示位运算,and、or则依据是否非0来决定输出,
&、|
1 & 2,2在二进制里面是10,1在进制中是01,那么01与运算10得到是0
1 | In [239]: 1 & 2 |
and、or
and运算时,and中含0,则返回0,均为非0时,则返回后一个值
1 | In [240]: 2 and 0 |
or运算时,至少一个非0时,则返回第一个非0
1 | In [243]: 2 or 0 |
(2)如何a, b是逻辑变量, 则两类的用法基本一致
1 | In [247]: True | False |
(3)&、| 支持set集合运算
如果a与b是两个set集合,则可以做如下运算:
- a与b的交集
1 | In [265]: a = {'a','b','c'} |
- a与b的并集
1 | In [268]: a|b |
除了 &、| 之外,set集合也支持 -、^ 运算
- a与b的差集:在集合a存在,不在集合b存在的元素
1 | In [269]: a-b |
- a与b的异或
1 | In [270]: a^b |
a与b的异或,可以理解为先求出只存在于a的元素集合,在求出只存在于b的元素集合,然后取并集
异或是指相同为1,不同为0