and or not
优先级:()> and> or> not
1.or
在 python 中, 逻辑运算符 or,x or y, 如果 x 为 True 则返回 x, 如果 x 为 False 返回 y 值. 因为如果 x 为 True 那么 or 运算就算退出看 l, 一个为真则为真, 所以返回 x 的值. 如果 x 的值为假, 那么 or 运算的结果取决于 y, 所以返回 y 的值.
- print(1 or 2) # 1
- print(3 or 2) # 3
- print(0 or 2) # 2
- print(0 or 100) # 100
- print(0 or 0)
- 2.and
在 python 中, 逻辑运算符 and,x and y, 如果 x 为 True 则返回 y 值. 如果 x 为 False 则返回 y 值. 如果 x 的值为 True,and 的运算不会结束, 会继续看 y 的值, 所以此时真与假取决于 y 的值, 所以 x 如果为真, 则返回 y 的值. 如果 x 为假, 那么 and 运算就会结束运算过程了, 因为有一个为假则 and 为假, 所以返回 x 的值.
- print(1 and 2) # 2
- print(3 and 0) # 0
- print(0 and 2) # 0
- print(3 and 2) # 2
- print(0 and 0) # 0
3. 混合例子与解析
print(1> 2 and 3 or 4 and 3 <2) # False or False -> False
按照从左向由, 优先级高的先执行优先级高的规则, 首先因为比较运算符优先级高于逻辑运算符, 很简单, 如果运算符低于了逻辑运算符优先级那还如何运算呢. and 优先级大于 or
1> 2 为 False
3 < 2 为 False
Flase and 3, 因为 False 为假所以 and 不在运算直接返回 False
4 and False, 因为 4 为真所以 and 运算符会继续运算后面的, 以 False 为主, 所以返回 False.
False or False, 因为 False 为假, 所以 or 运算符会继续运算后面的, 以 False 为主, 所以返回后面的 False 值
来源: http://www.bubuko.com/infodetail-2734023.html