python的逻辑运算符怎么理解?

a=10
b=20
print(not a)        #False
print(a and b)      #20
print(a or b)       #10

 

Python中的and和or是特有的短路运算符。简单来说就是and只要左侧逻辑值为False,则直接短路其后的所有表达式,不再进行运算,直接输出False,如果一直到表达式最后一直为True,就输出最后一个表达式。而or是只要左侧逻辑值为True,也不再进行运算,直接输出从左到右第一个为True的表达式。

>>> 10 or 20   # 10为True,因此不再运算右侧,直接输出左侧表达式

10

>>> 20 or 10

20

>>> 10 and 20   # 一直运行到结束,输出最后一个表达式结果

20

>>> 20 and 10

10

1、and:x and y--布尔"与" -- 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值

2、or:x or y--布尔"或" -- 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值

3、not:not x--布尔"非" -- 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True