【python @ 小甲鱼网课】 P3运算符优先级 and or 与 not

【python @ 小甲鱼网课】 P3运算符优先级 and or 与 not,第1张

基本概念

主要涉及到三个运算符:
and、or 以及 not

print(1 and 2)
print(0 and 1)
print(0 or 1)
print(0 or 0.0)
print(not 1)
print(not 0)

输出结果:

and、or 的运算遵循短路逻辑:从左到右,只有当第一个 *** 作数的值无法确定逻辑运算的结果时,才对第二个 *** 作数进行求值。

所以按照上述,1 and 2 = 2 的原因是因为 and 要求 两边的值 都为 true 时才为 true,1 为 true 但是 1 无法确定逻辑运算的结果,所以当发现第二个 *** 作数 2 也为 true 时输出。
同理,0 and 1 = 0 的原因则是因为第一个 *** 作数已经为 False,已经得到逻辑运算的结果,所以无需判断第二个 *** 作数而直接输出。
而 0 or 1 = 1 与 1 or 0 = 1 的区别在于 0 or 1 在判断第一个 *** 作数时无法得到答案,而 1 or 0 则在判断第一个 *** 作数时已经得到答案。

拓展延申

思考:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9) = ?

print((not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9))


(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
= False or 0 or 4 or 6 or 9
= 0 or 4 or 6 or 9
= 4

提高 - 运算符优先级

and、or 与 not 的优先级是:or < and < not
思考:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 = ?

print(not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9)

打印结果:

运算步骤:
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
= False or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
= False or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
= False or 0 or 4 or 6 or 9
= 0 or 4 or 6 or 9
= 4

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/875617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存