python中的and与or,&与 | 的区别
1.and与or
and”和“or”是逻辑操作符,用于连接两个布尔表达式(即真或假)。
**and”和“or”具有短路特性。**具体来说,“and”如果左侧的表达式为假,则不会计算右侧的表达式;如果左侧的表达式为真,则会计算右侧的表达式。“or”如果左侧的表达式为真,则不会计算右侧的表达式;如果左侧的表达式为假,则会计算右侧的表达式。这种特性在编程中很有用,因为它可以帮助我们节省计算资源。
例如:
a = True
b = False
c = a and b # 这会返回 False,因为 b 是 False
c = a or b # 这会返回 True,因为 a 是 True
具体用法:
- 判断变量是否为 0, 是 0 判断为 False,非 0 判断为 True。
- and 中含 False,返回 False; 均为True时,返回后一个值。
- or 中, 至少有一个True时,返回第一个True。
1 and 0 # 返回 0
2 and 1 # 返回 1
1 and 2 # 返回 2
1 or 0 # 返回 1
2 or 1 # 返回 2
0 or 1 # 返回 1
2.&与|
“&”和“|”是位运算符,用于操作二进制数字,当我们处理二进制数字时,可以使用“&”和“|”。
“&”和“|” 的优先级高于 ”and“与”or“ 。也就是说,如果在一个逻辑表达式中同时存在 ”and“与”or“ 和 “&”和“|”,那么“&”和“|”将优先于”and“与”or“ 进行运算。
1 & 2 # 返回 0
'''
2在二进制里面是10,1在二进制中是01
0 1
& 1 0
————————————
0 0
'''
1 | 2 # 返回 3
'''
0 1
| 1 0
————————————
1 1
'''