Oh! Yummy!!

プログラミングとか投資のこととかご飯のこととかを書きます。

pythonで文字列を適切な数値型に変換する方法

アプリケーションを作成していると,数値が文字列型で渡ってくることは少なくない.
そこで文字列を適切な数値型に変換する方法をメモ.

関数の引数に文字列を取り,まずはfloat型に変換する.ここで変換できない文字列が渡ってきた場合には変換時に例外が発生し,-99999が返る.
次にfloat型の数値をint型に変換して数値を比較する.小数点以下の値も持っていた場合はfloat型を返し,整数値しか持っていない場合にはint型を返すことになる.

pythonで「200.0 == 200」はTrueになる.

以下は実装例.

# 文字列を適切な数値型に変換する
# 数値に変換できない場合には -99999 を返す
# arg: 文字列
# return: 適切な数値型の数値
def to_number(num_str):
    try:
        value = float(num_str)
        if value == int(value):
            return int(value)
        else:
            return value
    except ValueError:
        return -99999