Q
逻辑或操作-1
3
A
回答
8
and
和or
均为懒惰;他们评估操作数,直到他们可以决定结果(and
停止在第一个False
操作数; or
停止在第一个True
操作数)。他们返回计算的最后一个操作数,如the documentation注意:
注意,无论是
and
也不or
限制值并键入他们回到False
和True
,而是返回最后一个变量。这有时是有用的,例如,如果s
是一个字符串,如果该字符串为空,则应该使用默认值替换,则表达式s or 'foo'
会生成所需的值。
3
两个第一部件-1
和1
被评估True
并因此返回。第二部分被忽略。
3
or
运营商短路。它在布尔上下文中返回第一个值True
,否则返回上一个求值的表达式。 -1
和1
都是在布尔上下文中的True
,所以你得到第一个数字。
0
,None
并且所有空容器评估为False
。
例如:
>>> 0 or 5
5
>>> '' or []
[]
3
在or
条件如果第一条件是真,第二不评估,
7
表达
x or y
首先评估x
;如果x
为真,则返回其值;否则,将评估y
并返回结果值。
0
我认为OP希望“或”是True或False(如将在其他一些语言布尔运算符的情况下)。
的Python,如Perl,只是返回的返回值第一个“真”值(其中“真”表示数字非零,字符串非空,非空等)
同样,'and'返回最后一个值当且仅当两者都为“true” 。
他很可能是由像
{'x':1} or [1,2,3]
结果更惊讶
Perl程序员经常惯用使用此结构(如open(FILE, "foo.txt") || die
;我不知道这是在Python作为共同
(见man)
相关问题
- 1. 逻辑操作符操作
- 2. && XML(逻辑操作)
- 3. Android逻辑操作&&?
- 4. 逻辑不操作
- 5. 逻辑操作:我想轻松地进行逻辑操作
- 6. 逻辑右移操作
- 7. MATLAB逻辑操作符:&& vs&
- 8. C位操作逻辑(BITAND)
- 9. 逻辑集操作的基数近似 - (“与/或/异或”的“HyperLogLog”)
- 10. 逻辑操作不起作用
- 11. 逻辑或| Unix
- 12. 协助查询的逻辑和操作
- 13. 具有逻辑if/else操作的CPLEX
- 14. 位明智的操作逻辑
- 15. Ç按位逻辑操作益智
- 16. 逻辑操作,以删除索引
- 17. 按位操作逻辑任务
- 18. 访客模式和逻辑操作
- 19. 矩阵上的Matlab逻辑操作
- 20. 在StackNavigator上操作componentWillMount逻辑
- 21. “任何”操作的逻辑条件
- 22. jQuery事件逻辑/操作顺序
- 23. 逻辑运算符和位操作C
- 24. JVM中的逻辑NOT操作
- 25. 逻辑操作模式使用NOT
- 26. 列表操作逻辑需要帮助
- 27. MySQL逻辑操作SELECT查询
- 28. 如何在Shell脚本中执行逻辑或操作
- 29. 逻辑或操作员不表现为预期
- 30. 演示逻辑或业务逻辑?