(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) #
print(5 or True) #
print(False or 5) #
# (2)
print((5 or 6) and 7) #
# (3)
print(not(5 or 6) and 7) # False
# (4)
print(3 > 1 or 4 < 5 and 6 > 9 or 8 == 10) # True