6

これら 2 つのコードの違いは何だろうと思いました。

while choice != "y" and choice != "n":
while not choice == "y" and not choice == "n":
4

1 に答える 1

10

1 つ目はオブジェクトの__ne__メソッドを使用し、2 つ目はオブジェクトの__eq__メソッドを使用してその結果を無効にします。

どちらの方法も結果をペアにする必要がありますが、これは実際には必要または強制されないことをa == b意味します。not a != b

比較演算子間に暗黙の関係はありません。の真は、それが偽x==yであることを意味しません。x!=yしたがって、 を定義するときは、演算子が期待どおりに動作するように__eq__()定義する必要があります。__ne__()

あなたの場合、choice文字列はどこにありますか(私は推測しますか?)、実際の違いはありません。==組み込み型はすべて、との間の逆の関係を保証し!=ます。したがって、唯一の違いは、コードを見たときの理解のしやすさです。個人的には、より簡潔な最初のバージョンの方が好きです。

于 2013-05-20T13:19:26.043 に答える