如何在Python中表示一个无限数?

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


#1楼

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

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

#2楼

在python2.x中,有一个肮脏的hack可以达到这个目的(除非绝对必要,否则不要使用它):

None < any integer < any string

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

在python3中已合理弃用了它。 现在这样的比较最终

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

#3楼

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

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

#4楼

首先,虽然float('inf')类型可用于比较目的,但它是float类型,但与之比较却相当慢。 因此,如果将大量数字与float('inf')进行比较,则请小心选择它。 我不确定“ math.inf”的性能。


#5楼

NumPy库中有一个无穷大: from numpy import inf 。 要获得负无穷大,只需写-inf


#6楼

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

对于正无穷大(仅出于完整性考虑):

math.inf

对于负无穷大:

-math.inf

#7楼

另外,如果您使用SymPy,则可以使用sympy.oo

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

等等


#8楼

我不知道您在做什么,但是float("inf")为您提供了一个float Infinity,它比任何其他数字都大。


#9楼

在Python中,您可以执行以下操作:

test = float("inf")

在Python 3.5中,您可以执行以下操作:

import math
test = math.inf

接着:

test > 1
test > 10000
test > x

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

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

float('inf') < Ellipsis

将返回true。

你可能感兴趣的:(如何在Python中表示一个无限数?)