在 C/C++ 中,比较运算符如< >
具有更高的优先级==
。此代码将评估为true
or 1
:
if(3<4 == 2<3) { //3<4 == 2<3 will evaluate to true
...
}
但在 Python 中,这似乎是错误的:
3<4 == 2<3 #this will evaluate to False in Python.
在 Python 中,每个比较运算符是否具有相同的优先级?
在 C/C++ 中,比较运算符如< >
具有更高的优先级==
。此代码将评估为true
or 1
:
if(3<4 == 2<3) { //3<4 == 2<3 will evaluate to true
...
}
但在 Python 中,这似乎是错误的:
3<4 == 2<3 #this will evaluate to False in Python.
在 Python 中,每个比较运算符是否具有相同的优先级?
在 Python 中,比较运算符不仅具有相同的优先级,而且还受到特殊处理(它们是链接而不是分组)。从文档中:
形式上,如果
a, b, c, ..., y, z
是表达式并且op1, op2, ..., opN
是比较运算符,则a op1 b op2 c ... y opN z
等价于a op1 b and b op2 c and ... and y opN z
,除了每个表达式最多计算一次。
在您的情况下,表达式
3<4 == 2<3
相当于
3 < 4 and 4 == 2 and 2 < 3
这是False
由于第二个条款。
简短回答:是的,所有比较都有相同的优先级
长答案:您可能想查看文档:Python 上的优先级