Pythonで文字列を数値に変換する:int(), long(), float()

Pythonで文字列を数値に変換する方法について紹介します。

文字列を数値に変換する

Pythonにはint, float, long, complexの4種類の数値型があります。
(※complexの説明は今回は省略します。)

それぞれの型において文字列を数値型に変換する記述方法は以下のとおりです。

int(x [, 基数])

int()の第2引数の基数は省略できます。基数はデフォルトでは10になっており、10進数の数値に変換されます。

float([x])

float()は引数が指定されなかった場合は、0.0を返します。

long(x, [, 基数])

long()の第2引数の基数は省略できます。基数はデフォルトでは10になっており、10進数の数値に変換されます。

以下は文字列をint型に変換したプログラムの例です。

print 1 + int("123")    # 124

基数を16進数として指定した例は以下のようになります。

print 1 + int("FF", 16)    # 256

ちなみに16進数でFFは255を意味します。

Pythonの型変換について

上のプログラムで文字列を数値に変換した理由は、Pythonで数値と文字列を連結するとタイプエラーが発生してしまうからです。

print 1 + "123"

上のプログラムではint型とstr型という異なる型を連結しているので、以下のようなエラーが発生してしまいます。

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    print 1 + "123"
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Pythonでは、自動的に型変換を行ってくれないため同じ型に変換してから処理を行う必要があるので、注意してください。

また、数値を文字列に変換する方法はこちらを参考にしてください。