Pythonで文字列を数値に変換する方法
Pythonで文字列を数値に変換する方法には、主に2つの関数を使用します。
それが int() と float() です。
これらの関数を使うことで、文字列型のデータを整数や浮動小数点数に変換できます。
以下にそれぞれの使い方について詳しく説明します。
int() 関数
int() 関数は、文字列を整数に変換するために使用します。
この関数は、文字列が整数形式であれば、文字列を整数値に変換します。
例えば、"123" という文字列を整数に変換する場合、次のようにします。
str_num = "123" int_num = int(str_num) print(int_num) # 出力: 123
int() 関数には、2つ目の引数として基数を指定することができます。
基数は、文字列がどの進数で表現されているかを示します。
例えば、16進数の文字列 "1A" を整数に変換する場合は、次のように基数として16を指定します。
hex_str = "1A" int_num = int(hex_str, 16) print(int_num) # 出力: 26
float() 関数
float() 関数は、文字列を浮動小数点数に変換するために使用します。
この関数は、文字列が浮動小数点数形式であれば、文字列を浮動小数点数値に変換します。
例えば、"3.14" という文字列を浮動小数点数に変換する場合、次のようにします。
str_num = "3.14" float_num = float(str_num) print(float_num) # 出力: 3.14
エラーハンドリング
文字列が数値に変換できない場合、int() や float() 関数は ValueError を発生させます。
このため、変換を行う際にはエラーハンドリングを行うことが重要です。
例えば、次のようにしてエラーを処理できます。
str_num = "abc" try: num = int(str_num) except ValueError: print("文字列を整数に変換できませんでした。")
その他の注意点
1. 空白や不正な文字:
文字列に余分な空白や不正な文字が含まれていると、変換時にエラーが発生します。
これらを取り扱う場合、先に strip() メソッドで空白を取り除くと良いでしょう。
str_num = " 123 " int_num = int(str_num.strip()) print(int_num) # 出力: 123
2. 浮動小数点数の表現:
浮動小数点数の文字列が、科学的表記(例: "1e-3")である場合でも float() 関数は正しく変換できます。
sci_str = "1e-3" float_num = float(sci_str) print(float_num) # 出力: 0.001
3. ロケール設定:
数値の形式がロケールによって異なる場合、例えばカンマが小数点として使用される地域では、標準の int() や float() 関数では正しく変換できないことがあります。
このような場合は、ロケールを考慮したパーサーを使用する必要があります。
これらの方法を使うことで、文字列を数値に変換する処理がスムーズに行えます。
各関数の特性を理解し、適切なエラーハンドリングを行うことで、より堅牢なプログラムを作成することができます。