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