不同型別的資料進行比較

2021-08-22 10:16:10 字數 807 閱讀 8129

參考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),有

不同型別的資料進行運算

今天同學在筆試中遇到乙個問題乙個無符號的數加乙個有符號的負數最後的結果是什麼?例子如下 int a 19 unsigned int b 10 if a b 0 else 問的其實就是有符號的和無符號的相加最終的型別是什麼型別?c 提供了乙個叫t include 用於檢視資料的內型標頭檔案 具體使用如...

不同型別光學透鏡的比較

最近經常接觸各種透鏡,把常見透鏡的特性用處簡單整理一下。日後又新的認識了再來補充。一些基本概念是要知道的比如光軸,焦距,主點 主平面 凸 凹 透鏡成像規則。透鏡也有正負之分,這取決於它是使光線匯聚還是發散。常見的正透鏡包括雙凸透鏡 平凸透鏡以及月牙凸 凸面和凹面曲線相似,中心厚於邊緣 雙凸 曲率越高...

js中不同型別作比較

示例 doctype html html head meta charset utf 8 meta name viewport content width device width,initial scale 1 title title head body body script 0 和 和 和 f...