This question already has answers here:
Is there a logical difference between 'not ==' and '!= (without is)

(3个答案)


7年前关闭。




我想知道这两段代码之间的区别是什么:
while choice != "y" and choice != "n":
while not choice == "y" and not choice == "n":

最佳答案

第一个使用对象的 __ne__ 方法,第二个使用对象的 __eq__ 方法并取反结果。

虽然这两种方法都应将其结果配对,所以a == b暗示not a != b,但这实际上不是必需的也不是强制性的。



在您的情况下,choice是一个字符串(我猜是吗?),它并没有真正的区别。内置类型均确保==!=之间的逆关系。因此,唯一的区别是,在查看代码时,它实际上是多么易于理解。我个人更喜欢更简洁的第一个版本。

关于Python not和!=之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16650351/

10-10 18:46