我只是偶然发现了这种行为,但在任何地方都没有看到解释。我认为float('-inf')应该小于0。
>>> cmp(0, float('-inf'))
1发布于 2013-12-13 22:46:17
float('-inf') 比0小。
当第一个参数大于第二个参数时,cmp()返回一个正值。因为float('-inf')比0小,这也意味着0大于float('-inf'),所以您希望cmp()返回1。
来自 documentation
比较这两个对象x和y,并根据结果返回一个整数。如果是
x < y,则返回值是负值,如果是x == y,则为零,如果是x > y,则返回值是严格正的。
并简单地证实:
>>> cmp(0, -1)
1发布于 2013-12-13 22:48:16
了解cmp(a, b)本质上是a-b的标志可能会有所帮助。如果是a > b,是+1,a < b是-1,a == b是0。
https://stackoverflow.com/questions/20577282
复制相似问题