如何在Python中表示无限数?

时间:2011-10-15 23:06:23

标签: python infinite infinity

如何在python中表示无限数?无论您在程序中输入哪个数字,任何数字都不应大于此无穷大的表示。

9 个答案:

答案 0 :(得分:577)

在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。

答案 1 :(得分:55)

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

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

答案 2 :(得分:30)

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

答案 3 :(得分:22)

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

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

答案 4 :(得分:19)

NumPy库中有一个无穷大:from numpy import inf。要得到负无穷大,可以简单地写-inf

答案 5 :(得分:19)

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

对于正无穷大(仅为了完整性):

math.inf

对于负无穷大:

-math.inf

答案 6 :(得分:11)

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

None < any integer < any string

因此,对于任何整数i < '',支票True都会保留i

在python3中已经合理地弃用了它。现在,这种比较最终会与

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

答案 7 :(得分:1)

如果您使用SymPy,也可以使用sympy.oo

>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan

答案 8 :(得分:-4)

首先浮动类型('inf')是浮点数,虽然它可以用于比较目的,但与它进行比较相当慢。因此,如果您要将一个大的数字列表与float('inf')进行比较,那么请小心选择它。我不确定“math.inf”的表现。