これは私の考えていることですか?それは私のように思えます。私は確信しています。3つの値の等価性をテストする
if n[i] == n[i+1] == n[i+2]:
return True
これらは同じですか?
if n[i] == n[i+1] and n[i+1] == n[i+2]:
return True
これは私の考えていることですか?それは私のように思えます。私は確信しています。3つの値の等価性をテストする
if n[i] == n[i+1] == n[i+2]:
return True
これらは同じですか?
if n[i] == n[i+1] and n[i+1] == n[i+2]:
return True
アクセスは、一度だけ実行されるので、それは、等価にそれに等しくありません。 Pythonはリレーショナル演算子を自然に連想します(in
とis
を含む)。
若干の差異表示する最も簡単な方法:
>>> print(1) == print(2) == print(3)
1
2
3
True
>>> print(1) == print(2) and print(2) == print(3)
1
2
2
3
True
これは同じではないことに注意する価値があります。一方が動作し、他方が失敗するシナリオ( 'n'は、アクセス後に' n [i + 1] 'の値を変更するオブジェクトです)。編集:私はその違いを示す例を編集しました。 –
はい、あなたが正しいですが....
あなたも
5 > x > 1
または
1 < x < 5
しかし、比較nsは共通式に一度評価され、and
を使用すると2回評価されます。最初のものはdocsから偽、例えばあれば両方の場合において、第2の比較が評価されていない。
比較は任意に連鎖することができ、例えば、< Y < = Zは、x < yに 等価であり、yはx < = zただし、yは1回だけ評価されます(ただし、 の場合は、x <が偽であると評価されます)。
うん、Pythonの内部での比較演算子の戻りも真でもない偽のは、彼らが代わりに「比較結果」オブジェクトを(クラス名を覚えていないことができ、それは過去にかなりあった)を返し、このオブジェクトは、を提供します_ LT _、_ GT _、_ EQ_などなどの方法および最終結果のための「責任」(及び「比較結果」になるの終了時に真または偽にキャストされていますステートメント)。それは意味制御の魔法ですPythonはあなたに提供します:)
これは正しいです。 –
重複:http://stackoverflow.com/questions/13792604/usage-of-the-operator-for-three-objects/13792615#13792615 –