我认为如果我理解正确,a <> b
在功能上与a != b
完全相同,在Python not a == b
中,但有理由使用<>
而不是not a is b
其他版本?我知道Python新手的常见错误是认为a != b
与not a == b
或<>
相同。
答案 0 :(得分:15)
<>
是!=
的确切同义词 - 没有理由使用它,除了无偿的异构性(样式问题)之外没有任何缺点。它一直被劝阻,现在已经在Python 3中删除了。
答案 1 :(得分:8)
只是一个迂腐的说明:<>
运算符在某种意义上是错误的名称(错误的?)。 a <> b
可能自然会被解释为a < b or a > b
(当然只评估a
和b
一次),但由于并非所有排序都是总排序,因此不匹配实际的语义。例如,2.0 != float('nan')
为真,但2.0 < float('nan') or 2.0 > float('nan')
为假。
!=
运营商不会受到这种可能的误解。
关于决定放弃{3.}}以获取Python 3.x的有趣观点(诗歌!),请参阅Requiem for an operator。
答案 2 :(得分:0)
你不应该在python中使用<>
。