680

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

4

10 回答 10

835

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

test = float("inf")

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

import math
test = math.inf

进而:

test > 1
test > 10000
test > x

永远都是真的。当然,正如所指出的,除非 x 也是无穷大或“nan”(“不是数字”)。

此外(仅限 Python 2.x),与 相比Ellipsisfloat(inf)较小,例如:

float('inf') < Ellipsis

将返回 true。

于 2011-10-15T23:09:43.343 回答
102

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

>>> import math
>>> math.inf
inf
于 2015-05-10T21:49:53.990 回答
83

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

对于负无穷大:

-math.inf

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

math.inf
于 2016-12-09T06:31:50.133 回答
33

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

于 2011-10-15T23:09:22.393 回答
32

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

于 2016-05-05T22:35:05.583 回答
27

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

from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
于 2013-10-12T03:53:16.343 回答
15

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

None < any integer < any string

因此检查i < ''适用True于任何整数i

它在 python3 中已被合理弃用。现在这样的比较结束了

TypeError: unorderable types: str() < int()
于 2014-11-08T10:07:23.213 回答
11

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

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

等等

于 2019-08-05T15:54:47.757 回答
1

对于正无穷大

pos_inf_val = float("infinity")

对于负无穷大

neg_inf_val = float("-infinity")
于 2022-02-17T17:37:45.180 回答
0
于 2022-02-22T10:56:59.063 回答