逻辑运算符&逻辑短路

(1)and 逻辑与

全真则真,一假则假

print(True and True)        #True
print(False and True)       #False
print(False and False)      #False
print(True and False)       #False

(2)or 逻辑或

全假则假,一真则真

print(True or True)        #True
print(False or True)       #True
print(False or False)      #False
print(True or False)       #True

(3)not 逻辑非, (取反)

print(not True)             #False
print(not False)            #True

 

 

逻辑短路: 在逻辑运算符的左侧就可以判断出来True或False, 那么右侧代码就不执行

False and bool 逻辑短路, 右侧不执行 True or bool 逻辑短路, 右侧不执行

False and print(123)      # 短路
True or print(234)        # 短路
​
True and print(345)       # and左侧不能判断真假, 右侧打印执行345

 

 

逻辑运算符的返回值:

并不只是返回True或False, 也可以返回其他值(要先经过bool强转后进行运算)

短路时弹出左侧数据(如果方法有返回值弹出返回值, 无返回值弹出None),

不短路时弹出右侧数据的返回值.

# (1)
print(5 or 6 and 7)         # 5
print(5 or True)            # 5
print(False or 5)           # 5


# (2)
print((5 or 6) and 7)       # 7


# (3)
print(not(5 or 6) and 7)    # False


# (4)
print(3 > 1 or 4 < 5 and 6 > 9 or 8 == 10)  # True

猜你喜欢

转载自www.cnblogs.com/caihuajiaoshou/p/10543171.html
今日推荐