我如何在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
使用上面的代码设置值