我认为,如果我理解正确,a <> b在功能上是完全相同的a != b,并且在Python中not a == b,但有理由使用<>其他版本吗?我知道Python新手的一个常见错误就是认为它not a is b与a != bor 相同not a == b.
<>,或者在功能上是否完全相同?只是一个迂腐的说明:<>运营商在某种意义上是错误的名称(错误的?). a <> b自然会被解释为a < b or a > b(评估a和b当然只有一次),但因为不是所有的排序是总排序,这不符合实际的语义.例如,2.0 != float('nan')是的,但是2.0 < float('nan') or 2.0 > float('nan')是假的.
该!=运营商不受到这种可能的误解.
有关决定放弃<>Python 3.x 的有趣内容(有诗歌!),请参阅Requiem for a operator.