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

2021-07-22 03:46:57 字數 789 閱讀 7970

參考

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'

C 中字串和數字之間的轉換

最近遇到看書和做題遇到的一些關於字串和數字轉化之間的問題,做乙個整理。具體可以參考 演算法筆記 p53頁 sscanf的使用 sscanf是將字元陣列的內容以對應數字形式 也可以是字串的形式,本篇主要討論字元與數字的轉化 傳輸到n中 從左到右 例如 include intmain 不同型別變數的組合...

字串和數字之間的轉換

1 字串數字之間的轉換 1 string char string str ok char p str.c str 2 char string char p ok string str p 3 char cstring char p ok cstring m str p 或者 cstring m st...

golang實現字元和數字之間的轉換

a 65 a 97 0 48 9 57 中 20013在go語言中,字元是用單引號括起來的乙個字元,可以是單位元組也可以是多位元組字元,在go中你可以將字元看做整型數字,所以go使用 byte,intxx,uintxx,rune 來存貯字元。預設使用4個位元組來儲存字元,除非你有所指定。var a ...