<分区>
在 Python 中,如果我写
z = 1 and 2
print z
然后它产生“2”。
但是如果我写
z = 0 and 2
print z
现在,它产生“0”。
这在现实生活中可能不是很重要,但我试图理解这里的逻辑。
标签 python
<分区>
在 Python 中,如果我写
z = 1 and 2
print z
然后它产生“2”。
但是如果我写
z = 0 and 2
print z
现在,它产生“0”。
这在现实生活中可能不是很重要,但我试图理解这里的逻辑。
最佳答案
0
, []
, ""
都是 false-ish(它们在 python 条件下被视为 False
)。 and
返回第一个 false-ish 值或最后一个值。这叫做 short-circuit evaluation .这就是为什么在一种情况下它返回 2
(最后一个)和另一个它返回 0
(错误的)。
事实上,如果你考虑一下逻辑运算,你可以将这种行为短路:
x and y (with x false-ish) -> x
x and y (with x true-ish) -> y
当插入一个条件时,它将评估为:
x
的 bool 结果这是 False
.这是 and
的正确结果操作,自False and y
= False
对于任何 y
.y
的 bool 值.自 x
是 True,and
的结果应该是 False
什么时候y
是False
和 True
什么时候y
是True
(它反射(reflect)了 y
的值)。关于python - 试图了解 python 中关于 'and' 命令的一个简单特性。谁能澄清一下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31501694/