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