在Python中,如果我写的话
z = 1 and 2
print z
Run Code Online (Sandbox Code Playgroud)
然后它产生"2".
但如果我写
z = 0 and 2
print z
Run Code Online (Sandbox Code Playgroud)
现在,它产生"0".
它在现实生活中的问题可能并不重要,但我试图理解这里的逻辑.
0,[],""都是假肥胖型(它们被视为False在一个python条件).and返回第一个false-ish值或最后一个.这称为短路评估.这就是为什么在一个情况下,它返回2(最后)和其他返回0(在假十岁上下).
实际上,如果您考虑逻辑运算,可以将此行为短路:
x and y (with x false-ish) -> x
x and y (with x true-ish) -> y
Run Code Online (Sandbox Code Playgroud)
当插入条件时,它将评估为:
x是False.这是操作的正确结果and,因为False and y= False对于任何操作y.y.既然x是真,结果and应该是False在y为False和True时y是True(它反映的价值y).