首页 > 解决方案 > 在 python 中为什么这个语句是错误的:- print(3 < (2 or 10))

问题描述

在 python 中,为什么这个语句是假的:- print(3 < (2 or 10)) 它不应该是真的吗?请解释

标签: python

解决方案


在 shell 中使用它可能已经清楚发生了什么:

>>> 3 < (2 or 10)
False
>>> (2 or 10)
2
>>> (0 or 10)
10
>>> (1 or 10)
1

当然,如果(2 or 10)等于23则不更小。

另请参阅文档

表达式x or y首先计算x; 如果x为真,则返回其值;否则,y评估并返回结果值。

整数通常是True,除了0None。可以在这里找到:

在布尔运算的上下文中,以及当控制流语句使用表达式时,以下值被解释为 false:False, None, 所有类型的数字零,以及空字符串和容器(包括字符串、元组、列表、字典、集合和冻结集)。所有其他值都被解释为 true。用户定义的对象可以通过提供一个__bool__()方法来定制他们的真值。


推荐阅读