Pythonで文字列を数値に変換する際、空文字やNoneが入力された場合にエラーを回避する方法について説明します。
文字列を数値に変換する基本的な方法
Pythonで文字列を数値型(int, float)に変換するには以下のようにします。
i = int("123")
f = float("123.4")
空文字やNoneが入力された場合の安全な変換方法
変換対象の文字列が空文字(もしくは None )の時でも安全に変換できるようにする方法があります。
i = int("" or "0")
f = float(None or "0")
この方法では、or
を使ってデフォルト時の値を文字列として指定します。左辺がFalsyな値(つまり空文字やNone)の時に右辺の文字列が評価され、結果的に右辺の値がデフォルト値となります。
Pythonのor演算子の仕組み
Pythonにおけるor
はbool値を返すわけではなく、左辺がTruthyな値ならば左辺を、Falsyな値ならば右辺を返します。また、or
やand
はif文の条件式以外でも使えるので上記のようにデフォルト値代わりとして使えるということです。
Falsyな値とは
以下の値はFalsyな値となります。
- False
- 空のリスト []
- 空の辞書 {}
- 空の文字列 “”
- ゼロ 0, 0.0
- None
以上の値以外はすべてTruthyな値となります。
以上、Pythonで文字列を数値に安全に変換する方法について説明しました。この方法を利用すれば、空文字やNoneが入力された場合でもエラーを回避し、安全に数値変換を行うことができます。