脚本宝典收集整理的这篇文章主要介绍了

Python的and和or的返回值

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

一直以来,我以为pythonandor的返回值是TrueFalse

看 《Dive into Python》这本书时,发现他们并不返回布尔值,而是返回他们实际进行比较的值之一。

and

根据自己已经掌握的知识,设想下如下代码的运算结果:

'a' and 'b'
'' and 'b'
'a' and 'b' and 'c'

根据python的定义,在没有看这部分内容之前,我认为答案分别为TrueFalseTrue。其实运行之后才发现应该是这样的:

Python 2.7.13+ (default, Jul 19 2017, 18:15:03)
[GCC 6.4.0 20170704] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 'a' and 'b'
'b'
>>> '' and 'b'
''
>>> 'a' and 'b' and 'c'
'c'
>>>

原因如下:

  1. and运算时,从左到右演算表达式的值。0, '', [], {}, None在布尔表达式环境下为假,其他任何东西都为真
  2. 如果and运算中,所有的值都为真,那么and返回最后一个值。如:'a' and 'b'
  3. 如果某个值为假,那么and立即返回该假值(短路运算),如:'' and 'b'

or

类似的。or的规则如下:

  1. 从左到右演算
  2. 如果有一个值为真,立即返回该值
  3. 所有所有的值都为假,返回最后一个假值

本文作者: Yarving Liu
本文链接: http://yarving.historytale.co...
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

总结

以上是脚本宝典为你收集整理的

Python的and和or的返回值

全部内容,希望文章能够帮你解决

Python的and和or的返回值

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过