はじめに
この記事では、Pythonのfloat()
関数を使用して文字列を浮動小数点数に変換します。また、Pythonのstr()
関数を使用して浮動小数点数を文字列に変換します。
計算や連結に使用する前に、データ型を適切に変換することはランタイムエラーを防ぐために重要です。
前提条件
このチュートリアルを完了するには、次のものが必要です:
- Python 3のインストールに慣れていること。そして、Pythonでのコーディングに慣れていること。Python 3でのコーディングの方法シリーズまたはPython用VS Codeの使用。
このチュートリアルはPython 3.9.6でテストされました。
float()
関数の使用
Pythonでは、float()
関数を使用して文字列を浮動小数点数に変換することができます。これは、オブジェクトを浮動小数点数に変換するために使用される組み込み関数です。内部的には、float()
関数は指定されたオブジェクトの__float__()
関数を呼び出します。
例
Pythonで文字列を浮動小数点数に変換する例を見てみましょう:
input_1 = '10.5674'
input_1 = float(input_1)
print(type(input_1))
print('Float Value =', input_1)
出力:
<class 'float'>
Float Value = 10.5674
文字列値 '10.5674'
が浮動小数点数値 10.5674
に変換されました。
なぜ文字列を浮動小数点数に変換する必要があるのでしょうか?
もしターミナルからユーザー入力やファイルから浮動小数点数の値を受け取る場合、それらは文字列オブジェクトとなっています。それらを必要な演算(加算、乗算など)を行うためには、明示的に浮動小数点数に変換する必要があります。
input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)
input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)
print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')
注意: fプレフィックスを使用した文字列のフォーマットについて詳しくは、Pythonのf-stringsを読んでください。
このコードを実行し、input_1
とinput_2
に浮動小数点数の値を入力してみましょう:
Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69
10.234
と2.456
の結果の合計は12.69
です。
ユーザーからの無効な入力に対しては、try-except
ブロックを使用して例外をキャッチする方が理想的です。
str()
関数を使用する
str()
関数を使用して、フロートを文字列に変換することもできます。これは、フロート値を連結したい場合に必要な場合があります。
例
次の例を見てみましょう:
input_1 = 10.23
input_2 = 20.34
input_3 = 30.45
# Python 3.6+ 以降では f-string を使用し、古いバージョンでは format() に変更してください
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')
このコードを実行しましょう:
Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45
10.23
と20.34
を連結すると、文字列'10.2320.34'
が生成されます。このコードは、カンマ区切り値(CSV)の2つのバージョンも生成します。
上記のプログラムでフロートを文字列に変換しない場合、join()
関数は例外をスローします。また、浮動小数点数を追加してしまうため、+
演算子を使用することもできません。
結論
完全なPythonスクリプトや他のPythonの例は、GitHubリポジトリから確認できます。
参考文献:
Source:
https://www.digitalocean.com/community/tutorials/python-convert-string-to-float