Pythonで文字列を数値に変換する方法(int, float)
Pythonの組み込み関数intとfloatについて解説します。
Pythonで数字を表す文字列を数値に変換する場合は、組み込み関数のint()
関数とfloat()
関数を使います。int()
関数は整数への変換、float()
関数は浮動小数点数への変換になります。
数値を文字列と組み合わせて、様々なフォーマットに変換したい場合には、以下の記事も参考にしてください。
int():文字列を整数に変換する
Pythonの組み込み関数int()
は、数字を表す文字列を引数に取ると、整数int
型に変換します。
数値を表す文字列の先頭に+
や-
などの符号がついている場合や、数値の先頭に任意の数の0
がついていても、整数型に変換してくれます。
# 文字列を整数に変換する
s1 = "100"
print(int(s1))
# 100
print(type(int(s1)))
# <class 'int'>
# -などの符号や先頭に0がついても変換できる
s2 = "-100"
print(int(s2))
# -100
s3 = "000123"
print(int(s3))
# 123
.
を含んだ小数や,
による桁区切りの文字列は適切に変換できません。一方、Pythonの数値の記法である、_
による区切りを入れた数値は有効に変換することができます。
# 小数やカンマによる桁区切りは変換できない
s1 = "1.0"
print(int(s1))
# ValueError: invalid literal for int() with base 10: '1.0'
s2 = "1,000,000"
print(int(s2))
# ValueError: invalid literal for int() with base 10: '1,000,000'
# replace()メソッドを使うと、,を削除して変換できる
print(int(s2.replace(',', '')))
# 1000000
# アンダースコアによる桁区切りは有効
s3 = "1_000_000"
print(int(s3))
# 1000000
float():文字列を浮動小数点数に変換する
Pythonの組み込み関数float()
は、数字を表す文字列を引数に取ると、浮動小数点数float
型に変換します。
先頭に+
か-
の符号がついている場合や、数値の先頭に任意の数の0
がついていても、浮動小数点数型に変換してくれます。
# 文字列を浮動小数点数に変換する
s1 = "100"
print(float(s1))
# 100.0
print(type(float(s1)))
# <class 'float'>
# -などの符号や先頭に0がついても変換できる
s2 = "-100"
print(float(s2))
# -100.0
s3 = "000123"
print(float(s3))
# 123.0
当然ですが、.
を含んだ小数は変換可能です。しかし、int()
と同様に,による桁区切りの文字列は適切に変換できません。_
による区切りを入れた数値は有効に変換できます。
# カンマによる桁区切りは変換できない
s1 = "123.456"
print(float(s1))
# 123.456
s2 = "1,000,000"
print(float(s2))
# ValueError: could not convert string to float: '1,000,000'
# replace()メソッドを使うと、,を削除して変換できる
print(float(s2.replace(',', '')))
# 1000000.0
# アンダースコアによる桁区切りは有効
s3 = "1_000_000"
print(float(s3))
# 1000000.0