1. 文章
  2. 文章详情

Python 语言 and 和 or 的返回值

python中andor并不返回布尔值,而是返回他们实际进行比较的值之一。

and

如下代码的运算结果:

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. 所有所有的值都为假,返回最后一个假值

发表评论

登录后才能评论

评论列表(0条)