2013-12-13 87 views
0

我剛剛遇到這種行爲,但沒有看到它解釋任何地方。我想float('-inf')應小於0.1這是正確的cmp()?

>>> cmp(0, float('-inf')) 
1 
+3

您認爲cmp會返回什麼結果?比較與cmp(0,1)例如 – alko

回答

7

float('-inf')0

cmp()當第一個參數大於第二個參數時返回正值。由於float('-inf')小於0,這也意味着0大於float('-inf')所以您會預計cmp()返回1

cmp() documentation

比較兩個對象Xÿ並根據該結果返回一個整數。如果x < y返回值爲負,如果x == y爲零,並且如果x > y嚴格爲正則返回值。

,也只是證實:

>>> cmp(0, -1) 
1 
+0

愚蠢的我,希望我救了別人不問。 – dansalmo

1

它可能有助於知道cmp(a, b)本質上是a-b的跡象。因此,如果a > b爲+1,如果爲a < b則爲+1,如果爲a == b則爲0。