2012-05-05 80 views
3

可能重複比較:
How does Python compare string and int?字符串爲整數Python中

我是做在Python一番比較。我很驚訝地發現我可以將一個字符串與一個整數進行比較。然後我做了一個ID,發現實際上id的字符串比int大,我認爲這就是我得到這個輸出的原因。

In [19]: 'a' < 3 
Out[19]: False 

In [20]: 'a'>3 
Out[20]: True 

In [17]: id('a') 
Out[17]: 140414909035824 

In [18]: id(3) 
Out[18]: 23119752 

請確認我是否正確解釋此行爲(在id級別上比較Python)。

+1

是的,它是正確的蟒蛇2,但不是蟒蛇3,這個問題已被問過。 – jamylak

+0

Duplcate:http://stackoverflow.com/questions/3270680/how-does-python-compare-string-and-int – rubik

+0

謝謝,所以因爲字符串比int更多的話,這就是爲什麼字符串大於上述問題的int 。 – Varun

回答

5

Python 2.x的跨型比較是一個歷史事件。從documentation

(...)總是不同類型的對象比較不等,並持續有序的,但任意

在Python 3.x中,這是固定的 - 這些比較拋出一個類型錯誤。

+0

我對Python很新穎(編程本身),在這種情況下,我應該從Python 3開始而不是Python 2開始嗎? – Varun

+0

可能最好堅持使用Python 2 IMO,因爲它有更多可用的資源。 – jamylak

+0

是的,絕對。 Python 3在很多方面都比較乾淨。目前任何人使用Python 2的唯一原因是它的普遍性和更多的庫。當你學習一種新語言或編程時,這兩者都不重要。 – phihag