逻辑运算符
逻辑运算符 逻辑与and 逻辑或or 逻辑非not
- 逻辑与规则:只要一个运算数是False,结果就是False;只有所有的运算数都是True,结果才是True
print(2>1 and 5>3 and 10>2) # result:True
print(3>2 and 5<4 and 6>1) # result:False
- 逻辑或规则:只要有一个运算数是True,结果就是True;只有所有的运算数都是False,结果才是False。
print(3>9 or 4<7 or 10<3) # result:True
print(3>5 or 4<2 or 8<7) # result:False
- 逻辑非运算:True>False False>True
print(not(5>2)) # result:False
逻辑运算的短路
-
逻辑与运算,只有所有的运算数都是True,结果才为True
只要有一个运算数是False,结果就是False
4>3 and print('Hello World')
4<3 and print('你好世界') # 逻辑与运算的短路问题
# result:Hello World
-
逻辑或运算:只有所有的运算数都是False,结果才是False
只要有一个运算数是True,结果就是True
4>3 or print('哈哈哈') # 4>3为True,or运算只要有一个为True结果为True,使用or连接后面的不在执行
4<3 or print('嘿嘿嘿') # 4<3为False,or运算所有的运算数结果为False才为False,使用or连接后面的继续执行
# result:嘿嘿嘿
-
逻辑运算的结果,一定是布尔值吗?不一定
逻辑与运算做取值时,取第一个为False的值;如果所有的运算数都为True,取最后一个值
print(3 and 5 and 0 and 'hello')
# result: 0
print('good' and 'yes' and 'ok' and 100)
# result: 100
- 逻辑或运算取值时,取第一个位true的值;如果所有的运算数都是False,去最后一个值
print(0 or [] or 'lisi' or 5 or 'ok')
# result: lisi
print(0 or [] or {} or ())
# result: ()

浙公网安备 33010602011771号