6

C / C ++では、などの比較演算子の< >優先度が高くなります==。このコードは次のように評価されtrueます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では、すべての比較演算子に同じ優先順位がありますか?

4

2 に答える 2

6

Pythonでは、比較演算子に同じ優先順位が与えられるだけでなく、それらは特別に扱われます(グループではなくチェーン)。ドキュメントから:

正式には、a, b, c, ..., y, zが式であり、op1, op2, ..., opNが比較演算子である場合、各式が最大で1回評価されることを除いて、はと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

これはFalse2番目の節によるものです。

于 2012-01-10T12:16:06.040 に答える
3

簡単な答え:ええ、すべての比較は同じ優先順位を持っています

長い答え:ドキュメントをご覧になることをお勧めします:Pythonの優先順位

于 2012-01-10T11:58:42.697 に答える