Pythonで文字列中に変数などの値を埋め込みたいとき、どう書いていますか?
もし、format()
メソッドを使い続けているなら、Python 3.6から導入された「f-string
(f文字列)」と呼ばれるフォーマット済み文字列リテラルに切り替えることをお勧めします。f-stringはシンプルで読みやすく、高速に動作するという利点があるからです。
format()メソッドとf-stringの比較
以下は、旧来のformat()
メソッドで文字列中に変数を埋め込む例です。
from datetime import datetime
now = datetime.now()
print("今日は{}年{}月{}日です。".format(now.year, now.month, now.day))
実行すると、「今日は2023年7月20日です。」のように出力されます。format()
メソッドの中にある変数の値が、文字列中の{}
に順番に代入されています。
これをf-stringで書くと、以下のようになります。
from datetime import datetime
now = datetime.now()
print(f"今日は{now.year}年{now.month}月{now.day}日です。")
このコードも同様に、「今日は2023年7月20日です。」のように出力します。違いは、文字列の中に直接変数を記述している点です。f-stringでは{}の中に直接変数名を書くことができます。
f-stringの利点は、主に以下の3点です。
- 読みやすさ: 文字列の中に変数が直接書かれているため、コードが自己説明的で読みやすくなります。
- 短さ:
.format()
メソッドを記述する必要がないため、コードが短くなります。 - 高速:
f-string
の方が.format()
よりも速く動作します。大量の文字列操作を行う場合、そのパフォーマンス差はより大きくなります。
f-stringでも、.format()と同様に数値を特定のフォーマットで出力できます。以下は、小数第2位まで出力する例です。
pi = 3.14159
print(f"円周率は、約 {pi:.2f} です。")
まとめ
Python3.6以降では、f-string
を使うことで、よりシンプルかつ高速に文字列のフォーマット操作を行うことができます。特に新しいプロジェクトを開始する際には、f-string
の使用を検討してみてください。
コメント