导航

逻辑运算符&逻辑短路

Posted on 2019-03-16 17:11  菜花教授  阅读(278)  评论(0编辑  收藏  举报

(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