问题
How can I represent an infinite number in python? No matter which number you enter in the program, no number should be greater than this representation of infinity.
回答1:
In Python, you can do:
test = float("inf")
In Python 3.5, you can do:
import math
test = math.inf
And then:
test > 1
test > 10000
test > x
Will always be true. Unless of course, as pointed out, x is also infinity or "nan" ("not a number").
Additionally (Python 2.x ONLY), in a comparison to Ellipsis
, float(inf)
is lesser, e.g:
float('inf') < Ellipsis
would return true.
回答2:
Since Python 3.5 you can use math.inf
:
>>> import math
>>> math.inf
inf
回答3:
I don't know exactly what you are doing, but float("inf")
gives you a float Infinity, which is greater than any other number.
回答4:
No one seems to have mentioned about the negative infinity explicitly, so I think I should add it.
For positive infinity (just for the sake of completeness):
math.inf
For negative infinity:
-math.inf
回答5:
Another, less convenient, way to do it is to use Decimal class:
from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
回答6:
There is an infinity in the NumPy library: from numpy import inf
. To get negative infinity one can simply write -inf
.
回答7:
In python2.x there was a dirty hack that served this purpose (NEVER use it unless absolutely necessary):
None < any integer < any string
Thus the check i < ''
holds True
for any integer i
.
It has been reasonably deprecated in python3. Now such comparisons end up with
TypeError: unorderable types: str() < int()
回答8:
Also if you use SymPy you can use sympy.oo
>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan
etc.
回答9:
first of all type of float('inf') is float though it can be used for comparison purpose but it is considerably slow to compare against it. So if you are comparing a large list of number against float('inf') then be careful to pick it. I am not sure about the performance of "math.inf".
来源:https://stackoverflow.com/questions/7781260/how-can-i-represent-an-infinite-number-in-python