【问题标题】:Confusion found with and operator [duplicate]与和运算符混淆[重复]
【发布时间】:2014-06-23 15:11:06
【问题描述】:

我使用and 运算符得到以下输出

代码

>>>0 and []
0
>>>[] and 0
[]
>>> 0 and ''
0
>>>'' and 0
''

我无法弄清楚在放置元素的基础上我得到不同结果的依据是什么..

【问题讨论】:

  • x and y 等价于y if x else x。类似地,x or yx if x else y,这对于分配默认值很方便。
  • 我不清楚为什么 Martijn Pieters 将此标记为短路的副本。这与短路无关。真实性不是短路的问题,无论有没有它,Python 中的答案都是一样的。

标签: python operator-keyword


【解决方案1】:

来自the docsand

表达式 x 和 y 首先计算 x;如果 x 为假,则其值为 回来;否则,对 y 求值,结果值为 返回。

在您的情况下,由于 0''[] 的计算结果都为 False,因此将返回每个表达式中的第一个值。

【讨论】:

  • 哇,你在问题结束后的 11 秒内设法发布了这个。 :-)
  • @tobias_k:实际上有一个 4 小时的窗口。 完整的网络用户界面禁用发布按钮,但移动用户界面不会。如果您在问题结束之前开始发帖,您仍然可以进入。
猜你喜欢
  • 2013-06-06
  • 1970-01-01
  • 2018-04-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2019-12-29
  • 2020-10-25
相关资源
最近更新 更多