PythonStudy——逻辑运算符 Logical Operators

在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了  __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。

# 逻辑运算符运行结果:不一定是bool类型


1. and
# 左右都成立才成立,有不成立的就不成立

res = 10 > 5 and 10 > 20
print(res)

Output: False
res = 0 and 20 # and前为假,整个式子就可以确定为假了,and后就不需要执行(短路)
print(res)

 2. or

# 左右都不成立才不成立,有成立的就成立
res = 10 < 5 or 10 > 20
print(res)

Output:
False
res = 10 or 20 # or前为真,整个式子就可以确定为真了,or后就不需要执行(短路)
print(res)

3. not

#成立则不成立,不成立则成立

print(not 10)
print(not 0)

Output:
False
True

4. 包含两个及以上的逻辑运算符

  逻辑运算符 and / or 一旦不止一个,其运算规则的核心思想就是短路逻辑,我们就来了解一下短路思想:

  1 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。

  2 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。

  3 若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。

# # 了解:and 优先级高于 or

res = 5 and 0 or 20 and 30  # 
print(res)

Output:
30

猜你喜欢

转载自www.cnblogs.com/tingguoguoyo/p/10713245.html
今日推荐