Python中的基本布尔表达式产生令人惊讶的结果

问题描述 投票:4回答:1

在Python中,我有2>3 == False给出了False。但我期望True。如果我使用括号,即(2>3) == False,则得到True。这背后的理论是什么?

python python-3.x boolean-expression
1个回答
4
投票

这是因为Python的一个功能与其他编程语言相比是非常不寻常的,它是您可以按顺序编写两个或多个比较,并且具有数学家直观的含义。例如,0 < 5 < 10之类的表达式为True,因为0 < 5 and 5 < 10True

From the docs

比较可以任意链接;例如,x < y <= z等效于x < y and y <= z,除了y仅被评估一次(但是在两种情况下,当发现z为假时,都不会评估x < y。)>

因此,表达式2 > 3 == False等于2 > 3 and 3 == False,即False

© www.soinside.com 2019 - 2024. All rights reserved.