【Python】int()やfloat()で文字列を数値に変換する!
Pythonで文字列を数値に変換するにはint()やfloat()を使用します。
int()とは指定した変数を整数型に変換する関数で、float()とは指定した変数を浮動小数点型に変換する関数となります。
その為、文字列型の変数を整数型に変換できたり、浮動小数点型に変換することができたりします。
そして、map()と組み合わせて使用すると、文字列を数値にまとめて変換することができるので、たくさんの変数の型を変換したい場合はとても便利です。
また、ボタンなどのUIから入力された値は文字列型として画面に出力されますので、入力された値同士で計算を行いたい場合はint()やfloat()を使って数値型に直しましょう。
今回はPythonのint()やfloat()で文字列を数値に変換する方法について以下の内容で解説していきます。
⚫︎ 文字列を整数型に変更する場合
⚫︎ 文字列を浮動小数点型に変換する場合
⚫︎ 文字列を数値にまとめて変換する方法
⚫︎ 文字列を数値に変換する具体例
目次
int()とは
int()とは指定した変数を整数型に変換して返す関数になります。
例えば、文字列型である「123」に対してint()を使用すると、整数型の「123」に変換されます。
float()とは
float()とは指定した変数を浮動小数点型に変換して返す関数になります。
例えば、文字列型である「123」に対してfloat()を使用すると、浮動小数点型の「123.0」に変換されます。
文字列を数値に変換するサンプルコード
文字列を数値に変換するサンプルコードを紹介します。
文字列を整数型に変換する場合
文字列を整数型に変換する場合はint()を使用します。
例
1 2 3 4 5 6 7 8 9 10 |
text1 = '12234' text2 = '56789' text3 = text1 + text2 print(text3, type(text3)) print('・文字列を整数型に変換する') text1_int = int(text1) text2_int = int(text2) text3_int = text1_int + text2_int print(text3_int, type(text3_int)) |
出力結果
1223456789 <class ‘str’>
・文字列を整数型に変換する
69023 <class ‘int’>
int()によって文字列型から整数型に変換されています。
その為、型が「str」から「int」に変わって表示されています。
文字列を浮動小数点型に変換する場合
文字列を浮動小数点型に変換する場合はfloat()を使用します。
例
1 2 3 4 5 6 7 8 9 10 |
text1 = '986565.678' text2 = '567345.3456' text3 = text1 + text2 print(text3, type(text3)) print('・文字列を浮動小数点型に変換する') text1_float = float(text1) text2_float = float(text2) text3_float = text1_float + text2_float print(text3_float, type(text3_float)) |
出力結果
986565.678567345.3456 <class ‘str’>
・文字列を浮動小数点型に変換する
1553911.0236 <class ‘float’>
float()によって文字列型から浮動小数点型に変換されています。
その為、型が「str」から「float」に変わって表示されています。
文字列を整数型や浮動小数点型にまとめて変換する方法
map()を組み合わせて使用すると、文字列を整数型や浮動小数点型にまとめて変換することができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
list1 = ['567345', '9865', '456', '789', '12567'] print(list1) for i in list1: print(i, type(i)) print('・文字列を整数型にまとめて変換する') list1_int = list(map(int, list1)) for j in list1_int: print(j, type(j)) list2 = ['567345.3456', '986565.678', '456.678', '2345.789', '12567.9'] print(list2) for k in list2: print(k, type(k)) print('・文字列を浮動小数点型にまとめて変換する') list2_float = list(map(float, list2)) for l in list2_float: print(l, type(l)) |
出力結果
[‘567345’, ‘9865’, ‘456’, ‘789’, ‘12567’]
567345 <class ‘str’>
9865 <class ‘str’>
456 <class ‘str’>
789 <class ‘str’>
12567 <class ‘str’>
・文字列を整数型にまとめて変換する
567345 <class ‘int’>
9865 <class ‘int’>
456 <class ‘int’>
789 <class ‘int’>
12567 <class ‘int’>
[‘567345.3456’, ‘986565.678’, ‘456.678’, ‘2345.789’, ‘12567.9’]
567345.3456 <class ‘str’>
986565.678 <class ‘str’>
456.678 <class ‘str’>
2345.789 <class ‘str’>
12567.9 <class ‘str’>
12567 <class ‘str’>
・文字列を浮動小数点型にまとめて変換する
567345.3456 <class ‘float’>
986565.678 <class ‘float’>
456.678 <class ‘float’>
2345.789 <class ‘float’>
12567.9 <class ‘float’>
リストに格納されている要素をmap()によってまとめて整数型や小数浮動点型に変換しています。
もし、map()関数について詳しく知りたい場合はこちらをご参考ください。
文字列を数値に変換する具体例
文字列を数値に変換する具体例として、入力した値を計算したい場合で使用されます。
例えば、電卓を作成しようと思った時に、UIから入力される数字は数値型ではなく、文字列型として入力されます。
例
1 2 3 4 5 6 7 |
def calc(x, y): result = x + y return result answer = calc('2004', '3023') print(answer) |
出力結果
20043023
このように入力した値のままで計算を行うとすると文字列同士の演算となり、正しい計算が行われません。
つまり、計算する前に文字列型から整数型や浮動小数点型に変換する必要があります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
def calc1(x, y): x_int = int(x) y_int = int(y) result = x_int + y_int return result answer1 = calc1('2004', '3023') print(answer1) def calc2(x, y): x_float = float(x) y_float = float(y) result = x_float + y_float return result answer2 = calc2('2004.678', '3023.346') print(answer2) |
出力結果
5027
5028.024
文字列の連結ではなく、数値同士の演算が行われています。
今回のポイント
int()やfloat()で文字列を数値に変換
Pythonで文字列を整数型や浮動小数点型に変換するにはint()やfloat()を使用する。
⚫︎ int()は指定したオブジェクトを整数型に変換する関数である
⚫︎ float()は指定したオブジェクトを浮動小数点型に変換する関数である
⚫︎ 文字列を整数型や浮動小数点型にまとめて変換するにはmap()と組み合わせて使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。