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

时间:2012-01-10 11:54:43

标签: c++ python c comparison-operators

在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中,每个比较运算符都具有相同的优先级吗?

2 个答案:

答案 0 :(得分:5)

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

  

正式地,如果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

答案 1 :(得分:3)

简短回答:是的,所有的比较都有相同的优先级

答案很长:您可能需要查看文档:{​​{3}}