Python与not之间的区别!=

Gia*_*mPy 4 python boolean-expression

我想知道这两段代码之间有什么区别:

while choice != "y" and choice != "n":
while not choice == "y" and not choice == "n":
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 9

第一个使用对象的__ne__方法,而第二个使用对象的__eq__方法并否定其结果.

虽然两种方法都应该对结果进行配对,但这a == b意味着not a != b实际上并不需要或强制实施.

比较运算符之间没有隐含的关系.事实x==y并非暗示这x!=y是错误的.因此,在定义时__eq__(),还应该定义__ne__()操作符将按预期运行.

在你的情况下,choice字符串在哪里(我猜?)它没有真正的区别.内置类型都确保了==和之间的反比关系!=.所以唯一的区别就是在查看代码时它是多么容易理解.我个人更喜欢更简洁的第一版.