如何在Python中表示无限数?

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

811661 次浏览

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

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

另一种不太方便的方法是使用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()

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

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

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

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

对于负无穷大:

-math.inf

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

math.inf

如果你使用SymPy,你可以使用sympy.oo

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

正无穷大

pos_inf_val = float("infinity")

对于负无穷大

neg_inf_val = float("-infinity")

python中表示

float("inf")float("INF")float("Inf")float("inF")float("infinity")float("Infinity")创建一个float对象,其中包含

您也可以在python中表示-∞

float("-inf")float("-INF")float("-Inf")float("-infinity")创建一个持有-∞的浮点对象

您可以执行算术运算

infinity = float("inf")
ninfinity = float("-inf")
nan = float("nan")


print(infinity*infinity)#inf
print(ninfinity+infinity)#not a number
print(1/-infinity)#is -0.0
print(nan*nan)# is not a number
print(1/infinity) # is 0.0 since 1/∞ is 0

输出:

$ python3 floating.py
inf
nan
-0.0
nan
0.0

总而言之,无限有两种定义。

正无穷大

posVal1 = math.inf
posVal2 = float("inf")

对于负无穷大

negVal1 = -math.inf
negVal2 = float("-inf")

无限

1.使用float('inf')float('-inf)

positive_infinity = float('inf') # inf
negative_infinity = float('-inf') # -inf

2.使用Python的数学模块

import math
 

positive_infinity = math.inf # inf
negative_infinity = -math.inf # -inf

3.整数maxsize

import sys


maxSize = sys.maxsize # 9223372036854775807
minSize = -sys.maxsize # -9223372036854775807

4.使用Python的decimal模块

from decimal import Decimal
 

positive_infinity = Decimal('Infinity') # Infinity
negative_infinity = Decimal('-Infinity') # -Infinity