Pythonで文字列がfloatに変換可能かどうかを判定する方法
Pythonでは、文字列がfloat(浮動小数点数)として有効かどうかを確認したい場面がよくあります。最もシンプルで確実な方法は、float()関数をtry-exceptブロックで囲むことです。
基本的な変換方法
文字列をfloatに変換するには、次のように記述します。
try:
print(float('112.15'))
except ValueError:
print('Cannot parse')
このコードを実行すると、以下の出力が得られます。
112.15
変換できない場合の挙動
もし文字列が数値として解析できない場合(例えば 'abc' のような文字列)、ValueError が発生します。この例外を捕捉することで、変換の可否を安全に判定できます。
真偽値を返すラッパー関数を作る
毎回try-exceptを書くのは手間なので、与えられた文字列がfloatに変換可能かどうかをブール値(True / False)で返す関数を作ると便利です。
def isfloat(value):
try:
float(value)
return True
except ValueError:
return False
print(isfloat('112.5'))
実行結果:
True
補足:注意点
isfloat() 関数は、整数形式の文字列(例:'10')に対しても True を返します。これは float('10') が正常に動作するためです。厳密に小数点を含む文字列だけを判定したい場合は、正規表現を使う方法もあります。また、None やリストなどの非文字列オブジェクトを渡すと TypeError が発生するため、必要に応じて引数の型チェックを追加するとより堅牢になります。
-
Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】
Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>
-
Pythonで変数の存在を確認する方法|locals()・globals()・hasattr()の使い方
Pythonでは、変数が存在するかどうかを確認するために、組み込み関数の locals()、globals()、そして hasattr() を活用します。それぞれの役割と具体的な使い方を、サンプルコードと実行結果をもとに解説します。 変数の存在確認に使える3つの方法 locals():現在のローカルスコープ(関数やメソッド内)で定義されている変数を辞書形式で返します。 globals():モジュール全体(グローバルスコープ)で定義されている変数を辞書形式で返します。 hasattr():オブジェクトが指定した名前の属性を持っているかどうかを真偽値で判定します。 サンプルコード x = 10