Python中字元和數字之間是怎麼比較大小的?

時間 2021-06-01 18:59:15

1樓:

@閆航 的回答不對。

參考5. Built-in Types中的說明,CPython按照如下規則進行比較(自己的總結):

任何兩個物件都可以比較

相同型別的物件(例項),如果是數字型(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"等

上面的回答是針對Python2.x,3.x的有較大的變化,如str和int比較時會丟擲異常等。

回到題目,字元和數字的比較符合規則3,所以數字《字元。舉個例子,如100和'a'(ord('a')=97),有

100<'a'

Excel字元中怎麼提取字母和數字?

fresen 手機打的,可以有點兒繞,只是乙個思路,算是拋磚引玉吧。用substitute把c換成空,len該單元格就可知道該單元格有幾個c,替換最後面的這個c為 或其他唯一的值,再find 在第幾位,然後按這個 所在位數用mid即可分別得出三段字串。 TuskAi 如果是用公式做,可以先用MID將...

Python 中為何沒有數字到字串的自動轉換?

小咩2021 數字加字串,你想要啥結果?舉例 這兩種都說得過去吧 abc def 1 198 200 202 字元陣列自動轉換為ascii碼數字,數字不變,然後進行加法運算,matlab中的定義 abc def 1 abcdef1 數字轉文字,字串不變,然後進行合併運算,你給的定義 abc def ...

對JS隱式轉換的問題,當進行字串和數字比較時,關於隱式轉換valueOf是怎麼呼叫的?

Ahonn 字串轉換為數字的方式有 前置 操作符 Number parseInt parseFloat 排除 parseInt 和 parseFloat 原因是這兩個函式會轉換 123a 這種字串為 123,而 123a 123 肯定不會返回 true。我找到 ECMA 中對前置 操作符和 Numb...