【Python】文字列を数値に変換する方法を解説!
Pythonで文字列を整数型に変換するにはint()を使用し、文字列を小数型に変換するにはfloat()を使用します。
文字列を数値に変換することで、文字列として入力した数値を計算して、文字列として表示することができるなど、変数を自由自在に操ることができます。
また、一つひとつ文字列を数値に変換するのは面倒ですが、map()を使用すると、それぞれの文字列を数値にまとめて変換することができます。
今回は文字列を数値に変換する方法について以下の内容で解説していきます。
⚫︎ 文字列を数値に変換するとは
⚫︎ 文字列から整数型に変換する場合
⚫︎ 文字列から小数型に変換する場合
⚫︎ 文字列から整数型にまとめて変換する場合
⚫︎ 文字列から小数型にまとめて変換する場合
目次
文字列を数値に変換するとは
文字列を数値に変換することで、文字列として入力した数値を計算し、計算した結果を文字列として表示するなど変数を自由自在に操作することができます。
例えば、以下のように数値型の数字と文字列の数字を+演算子で計算しようとするとエラーが発生します。
例
1 2 3 4 |
string = '24' num = 24 print(string + num) |
出力結果
TypeError: can only concatenate str (not “int”) to str
コードを見ると、問題ないかと思われますがnumの24は「int型の24」であり、stringの24は「string型の24」になっています。
つまり、同じ型同士で計算しないと演算子は使用できないということになり、数値と文字列の演算を行う場合には、文字列をいったん数値に変換する必要があります。
また、文字列の数字同士で+演算子を使用すると、文字列同士が連結して表示されるようになります。
例
1 2 3 4 |
string1 = '24' string2 = '25' print(string1 + string2) |
出力結果
2425
「24 + 25」であるから49と表示されると思いがちですが、文字列同士の+演算子は連結になりますので、数値の計算ができません。
そん為、こちらも文字列をいったん数値に変換する必要があります。
文字列を数値に変換するサンプルコード
文字列を数値に変換するサンプルコードを紹介していきます。
文字列から整数型に変換する場合
文字列から整数型に変換する場合はint()を使用します。
例
1 2 3 4 5 6 7 8 9 10 |
string1 = '57' string2 = '100' print(string1 + string2) print(type(string1 + string2)) print('・文字列から整数に変更') int_string1 = int(string1) int_string2 = int(string2) print(int_string1 + int_string2) print(type(int_string1 + int_string2)) |
出力結果
57100
<class ‘str’>
・文字列から整数に変更
157
<class ‘int’>
int()によって文字列を整数型に変更することができます。
その為、数値同士の計算が行われて表示されています。
文字列から小数型に変換する場合
文字列から小数型に変換する場合はfloat()を使用します。
例
1 2 3 4 5 6 7 8 9 10 |
string1 = '57' string2 = '120.678' print(string1 + string2) print(type(string1 + string2)) print('・文字列から小数に変更') flt_string1 = float(string1) flt_string2 =float(string2) print(flt_string1 + flt_string2) print(type(flt_string1 + flt_string2)) |
出力結果
57120.678
<class ‘str’>
・文字列から小数に変更
177.678
<class ‘float’>
float()によって文字列が小数型に変更されています。
その為、数値同士の計算が行われて表示されています。
複数の文字列を数値にまとめて変換する方法
map()を使用することで、複数の文字列を数値にまとめて変換することができます。
文字列から整数型にまとめて変換する場合
文字列から整数型にまとめて変換してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
str_list = ['567', '345', '23', '156','789'] print(str_list) print('・リストの文字列を取り出す') for i in str_list: print(i) print(type(i)) print('・文字列から整数型にまとめて変換') num_list = list(map(int, str_list)) print(num_list) print('・変更した整数型をリストから取り出す') for j in num_list: print(j) print(type(j)) |
出力結果
[‘567’, ‘345’, ’23’, ‘156’, ‘789’]
・リストの文字列を取り出す
567
345
23
156
789
<class ‘str’>
・文字列から整数型にまとめて変換
[567, 345, 23, 156, 789]
・変更した整数型をリストから取り出す
567
345
23
156
789
<class ‘int’>
map()によってリストに格納された文字列をまとめて整数型に変更することができます。
そして、for文を使用して変更した小数型をリストから取り出しています。
文字列から小数型にまとめて変換する場合
文字列から小数型にまとめて変換してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
str_list = ['567', '345', '23', '156','789'] print(str_list) print('・リストから文字列を取り出す') for i in str_list: print(i) print(type(i)) print('・文字列から小数型にまとめて変換') num_list = list(map(float, str_list)) print(num_list) print('・変更した小数型をリストから取り出す') for j in num_list: print(j) print(type(j)) |
出力結果
[‘567.567’, ‘345.345’, ‘23.126’, ‘156.95’, ‘789.347’]
・リストから文字列を取り出す
567.567
345.345
23.126
156.95
789.347
<class ‘str’>
・文字列から小数型にまとめて変換
[567.567, 345.345, 23.126, 156.95, 789.347]
・変更した小数型をリストから取り出す
567.567
345.345
23.126
156.95
789.347
<class ‘float’>
map()によってリストに格納された文字列をまとめて整数型に変更することができます。
そして、こちらもfor文を使用して変更した小数型をリストから取り出しています。
今回のポイント
int()やfloat()で文字列を数値に変換
⚫︎ 文字列を数値に変換することで、変数を自由自在に操作することができる
(文字列として入力した数値を計算して、文字列として表示するなど)
⚫︎ 文字列から整数型に変換するにはint()を使用する
⚫︎ 文字列から小数型に変換するにはfloat()を使用する
⚫︎ map()を使用すると、それぞれの文字列を数値にまとめて変換することができる
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。