# 逻辑运算符
#and 且,与
# or 或,或者
# not 不,非,取反
#and 两边都为真则为真,只要有一个为假则为假
print(True and True) #True
print(True and False) #False
print(False and True) #False
print(False and False) #False
#or:两边都为假则为假,只要有一个为真则为真
print(True or True) #True
print(True or False) #True
print(False or True) #True
print(False or False) #False
# not
print(not False) #True
print(not True) #False
print(not 0) #True
print(not 1) #False
print(not -1) #False
print(not " ") #False
print(not None) #True
print(not "") #True
#隐式判断:
#bool 重点
# 数值中:0为假,其他都为真
# 字符串中: ""空字符串为假,其他都为真 (空格也是字符)为真
# None : None 为假
# bool:False 为假 True为真
# list:[] 空列表为假,其他为真
# dict: {} 空字典为假,其他为真
# tuple:() 空元组为假,其他为真
# 短路操作
#and 两边都为真则为真,只要有一个为假则为假
#and 从左往右依次隐式判断操作数的bool值,如果有假则直接返回值,
# 否则继续往右判断,直到最后一个数
x = 10 and 3
print(x) #3
x = 0 and 3
print(x) #0
#or:两边都为假则为假,只要有一个为真则为真
#or 从左往右依次隐式判断操作数的bool值,如果有真则直接返回值,
# 否则继续往右判断,直到最后一个数
x = 10 or 3
print(x) #10
x = 0 or 3
print(x) #3