Python逻辑短路问题

#Python的逻辑短路问题

##例一

先来看一段代码:

分析---->Python解释器执行代码的时候发现or左边是True,所以不会再继续判断or右边的False(因为整个表达式就是True),而or表达式取决于解释器最后的执行的值,在上边的例子中,True就是最后被解释执行的值,所以整个表达式的值就是True,这就是短路效应。

##例二

分析---->Python从左往右执行,先是a(),返回的值是True,后面是and语句,不能短路,继续和b()进行逻辑运算,a() and b() 输出的b()的逻辑值是True,接着和c() 进行逻辑运算,b() and c()的逻辑值是False,后面跟着and语句,就全部会被短路,最后只能打印出ABC,而不是OK.

#例三

分析---->a()的逻辑值是True,其后的均为or语句,所以会全部短路,最终只能打印出A,而if语句的结果是True,所以就会打印出OK;

#总结

1.表达式从左到右运算,如果or的左侧逻辑值是True,则短路or后所有的表达式(不管是and还是or),直接输出or左侧的值;

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

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

关注我的编程,编程路上少迷路!

本文参考资料:

《python中 and 和 or 运算的核心思想 ——— 短路逻辑》

《python and与or》

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180509G19ZR800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券