我如何在Python中表示无限数字?

我怎样才能在python中表示一个无限数字? 无论你在程序中input哪一个数字,都不应该大于这个无穷大的表示。

在Python中,你可以这样做:

 test = float("inf") 

在Python 3.5中,你可以这样做:

 import math test = math.inf 

接着:

 test > 1 test > 10000 test > x 

永远是真的 当然,除非指出,x也是无穷大或“南”(“不是数字”)。

另外(仅Python 2.x),与Ellipsis比较, float(inf)较小,例如:

 float('inf') < Ellipsis 

会返回true。

从Python 3.5开始,你可以使用math.inf

 >>> import math >>> math.inf inf 

我不知道你在做什么,但是float("inf")给你一个浮点数无限大,比任何其他数字都大。

另一个不太方便的方法是使用Decimal类:

 from decimal import Decimal pos_inf = Decimal('Infinity') neg_inf = Decimal('-Infinity') 

在python2.x中有一个肮脏的黑客服务于此目的(除非绝对必要,否则不要使用它):

 None < any integer < any string 

因此,对于任何整数i ,检查i < ''都为True

它已被合理的弃用python3。 现在这样的比较结束了

 TypeError: unorderable types: str() < int() 

NumPy库有一个无穷大: from numpy import inf 。 为了获得负面的无穷可以简单地写入-inf

似乎没有人明确提到负无穷,所以我想我应该加上它。

对于正无穷(只是为了完整性):

 math.inf 

对于负无限:

 -math.inf 

首先浮点型('inf')虽然可以用于比较目的,但是浮点型是比较慢的, 所以,如果你正在比较一个大的数字列表与浮动(“inf”),那么要小心挑选它。 我不确定“math.inf”的performance。

 value = 0x7fffffff 

使用上面的代码设置值