Pythonで無限数を表現するにはどうすればいいですか?プログラムにどの数値を入力しても、この無限大の表現を超えないようにしてください。
Pythonでは、次のことができます。
test = float("inf")
Python 3.5では、次のことができます。
import math
test = math.inf
その後:
test > 1
test > 10000
test > x
常に本当でしょう。もちろん、指摘されているように、xは無限大または "nan"( "not a number")でもない限り。
さらに(Python 2.xのみ)、Ellipsis
と比較すると、float(inf)
は少なくなります。例えば:
float('inf') < Ellipsis
trueを返します。
Python 3.5からはmath.inf
を使うことができます。
>>> import math
>>> math.inf
inf
私はあなたが何をしているのか正確には分かりませんが、float("inf")
はあなたにfloat Infinityを与えます、それは他のどの数値よりも大きいです。
もう1つの、それほど便利ではない方法は、 Decimal
classを使用することです。
from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
負の無限大については誰も明示的に言及していないようであるので、私はそれを追加すべきだと思います。
正の無限大の場合(完全性のためだけに):
math.inf
負の無限大の場合:
-math.inf
NumPyライブラリには無限大があります:from numpy import inf
。負の無限大を得るためには-inf
と書くだけです。
Python2.xには、この目的を果たすダーティーなハックがありました(絶対に必要でない限り絶対に使わないでください):
None < any integer < any string
したがって、チェックi < ''
は任意の整数True
に対してi
を保持します。
それはpython3で合理的に廃止されました。今そのような比較はに終わる
TypeError: unorderable types: str() < int()
また、sympyを使用する場合、sympy.ooを使用できます。
>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan
等.