Python中字元和數字之間是怎麼比較大小的?
阿新 • • 發佈:2019-02-17
參考5. Built-in Types中的說明,CPython按照如下規則進行比較(自己的總結):
回到題目,字元和數字的比較符合規則3,所以數字<字元。舉個例子,如100和'a'(ord('a')=97),有
100<'a'
- 任何兩個物件都可以比較
- 相同型別的物件(例項),如果是數字型(int/float/long/complex),則按照簡單的大小來比較;如果是非數字型,且類(型)中定義了__cmp__(含__gt__,__lt__等)則按照__cmp__來比較,否則按照地址(id)來比較
- 不同型別的物件(例項),如果其中一個比較物件是數字型(int/float/long/complex等),則數字型的物件<其它非數字型的物件;如果兩個都是非數字型的物件,則按照型別名的順序比較,如{} < "abc"(按照"dict" < "str"),而"abc" > [1,2], "abc" < (1,2)。
- 對於自定義的類(型)例項,如果繼承自基本型別,則按照基本型別的規則比較(1-3)。否則,old-style class < new-style class, new-style class之間按照型別名順序比較,old-style class之間按照地址進行比較
- bool型別是int的子類,且True=1, False=0,比較時按照1-4來比較,如True > -1, True < 4.2, True < "abc"等
回到題目,字元和數字的比較符合規則3,所以數字<字元。舉個例子,如100和'a'(ord('a')=97),有
100<'a'