我正在檢討一些代碼,今天看到了我想是一個錯字:爲什麼Python 2將<>視爲有效?它有什麼作用?
if foo <> bar:
# do stuff
不過,我很驚訝地看到,Python2出現治療<>
爲有效:
% python -c 'print 1<>2'
True
此外,我不能辨別是什麼原因導致<>
返回True
VS False
:
In [16]: 1 <> 2
Out[16]: True
In [17]: 2 <> 1
Out[17]: True
In [18]: 1 <> None
Out[18]: True
In [19]: 1 <> "foo"
Out[19]: True
In [20]: None <> 1
Out[20]: True
In [21]: None <> None
Out[21]: False
In [22]: False <> 1
Out[22]: True
我的一個猜測是,由於Python是同時使用<
和>
運營商和我的犧牲品一些布爾鑄造有心計,但不會出現這樣的情況作爲< >
是無效的,而且也不是><
:
In [29]: 1 >< 2
File "<ipython-input-29-0e35e3b94016>", line 1
1 >< 2
^
SyntaxError: invalid syntax
In [30]: 1 < > 2
File "<ipython-input-30-8f2ba3fa3c6c>", line 1
1 < > 2
^
SyntaxError: invalid syntax
最後,Python 3的扼流圈對這個 「經營者」(或不管它應該叫):
% python3 -c 'print(1<>2)'
File "<string>", line 1
print(1<>2)
^
SyntaxError: invalid syntax
那麼,是什麼原因呢?什麼是<>
在做什麼?它是什麼?爲什麼它在Python 3中無效?
@minitoto我的意思是,我特意問了這個問題,因爲我不知道如何谷歌什麼是「<>」運算符,所以我不會認爲這個問題是重複的,我試圖找到它和我的搜索失敗了我。但我想這個答案確實回答了我的問題,現在我知道了答案。 顯然我熟悉'!='運算符 –
沒有冒犯,但我認爲這是羣衆的問題,有些人只是不能谷歌或失敗,並要求重複的問題已經有很好的答案 – tinySandy
我是不確定是否有可能Google這樣的符號。 – Paul