Pythonで無限大(inf)を表す方法|float()とmathモジュールの使い方
Pythonで無限大を表す基本の方法
Pythonでは、浮動小数点数(float型)として無限大を扱うことができます。最もシンプルな方法は、組み込み関数 float() の引数に文字列 'inf' を渡すことです。
>>> a = float('inf')
>>> a
infこれで変数 a には正の無限大が代入されます。負の無限大が必要な場合は、'-inf' を指定します。
>>> b = float('-inf')
>>> b
-infmathモジュールのinf定数を使う方法
標準ライブラリの math モジュールに用意されている定数 math.inf を使っても、まったく同じ結果が得られます。
>>> import math >>> a = math.inf >>> a inf
math.inf と float('inf') は完全に等価であり、比較しても True が返されます。
>>> import math
>>> float('inf') == math.inf
True無限大の主な性質と注意点
- 任意の有限の数よりも大きい(例:
inf > 10**100はTrue) inf + infやinf * 正の数の結果もinfのままinf - infは数学的に未定義のため、結果はnan(非数)になる
これらの性質を活かせば、「事実上の最大値」を初期値として設定したい場面で非常に便利です。たとえば、リストから最小値を探す処理で、比較用の初期値に float('inf') を使うのが定番のテクニックです。
-
Pythonで文字列がfloatに変換可能かどうかを判定する方法
Pythonでは、文字列がfloat(浮動小数点数)として有効かどうかを確認したい場面がよくあります。最もシンプルで確実な方法は、float()関数をtry-exceptブロックで囲むことです。 基本的な変換方法 文字列をfloatに変換するには、次のように記述します。 try: print(float(112.15)) except ValueError: print(Cannot parse) このコードを実行すると、以下の出力が得られます。 112.15 変換できない場合の挙動 もし文字列が数値として解析できない場合(例えば abc のような文字列)、ValueError
-
Python関数の引数の数を取得する方法【inspectモジュール活用】
Python関数の引数の数を調べるには? たとえば、次のようなスクリプト qux.py があるとします。 #qux.py def aMethod1(arg1, arg2): pass def aMethod2(arg1, arg2, arg3, arg4, arg5): pass このスクリプトの中身が分からない(ソースコードにアクセスできない)場合でも、Pythonの標準ライブラリである inspect モジュールを使えば、関数が受け取る引数の数や名前を簡単に調べることができます。 inspectモジュールで引数の一覧を取得する まず、inspect モジュールをインポー