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 も無限大または「ナン」(「数ではない」) でない限り。

さらに (Python 2.x のみ) と比較するとEllipsis、以下のようになりfloat(inf)ます。

float('inf') < Ellipsis

true を返します。

于 2011-10-15T23:09:43.343 に答える
83

誰も負の無限大について明示的に言及していないようですので、追加する必要があると思います。

負の無限大の場合:

-math.inf

正の無限大の場合 (完全を期すために):

math.inf
于 2016-12-09T06:31:50.133 に答える
33

あなたが何をしているのか正確にはわかりませんがfloat("inf")、他のどの数値よりも大きい float Infinity が得られます。

于 2011-10-15T23:09:22.393 に答える
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 < ''保持されます。Truei

これは、python3 で合理的に非推奨になりました。今、そのような比較は

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