比较运算符在Python与C / C ++中的优先级

在C / C ++中,比较运算符(如优先级高于== ,对吧?

所以在C / C ++中,代码将评估为true1

 if(3<4 == 2<3) { //3<4 == 2<3 will evaluate to true, right? ... } 

但在Python中,它似乎是错误的:

 3<4 == 2<3 #this will evaluate to False in Python. 

在Python中,每个比较运算符都具有相同的优先级吗?

在Python中,不仅比较运算符给予相同的优先级,它们也被特别处理(它们链而不是组)。 从文档 :

forms上,如果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的优先级