まだ.format()を使ってるの?Python 3ならf-stringを使うべき3つの理由

Python

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の使用を検討してみてください。

Python
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました