我刚刚遇到过这种行为,但没有看到它在任何地方解释过。我认为float('-inf')
应该小于0.
>>> cmp(0, float('-inf'))
1
答案 0 :(得分:7)
float('-inf')
小于0
。
cmp()
返回正值。由于float('-inf')
小于0
,这也意味着0
大于float('-inf')
因此您期望 cmp()
返回1
。
比较两个对象 x 和 y 并根据结果返回一个整数。如果
x < y
,则返回值为负,如果x == y
,则返回值为零;如果x > y
,则返回值为正。
并且还简单地验证了:
>>> cmp(0, -1)
1
答案 1 :(得分:1)
了解cmp(a, b)
基本上是a-b
的标志可能会有所帮助。因此,a > b
为+1,a < b
为-1,a == b
为0。