Pythonでプログラミングをしていると、変数と文字列を組み合わせて出力したい場面が必ず訪れます。かつては % 演算子や .format() メソッドが主流でしたが、現在ではより直感的で簡潔に書ける「f文字列(f-string)」が標準的な手法となっています。
この記事では、Python 3.6から導入され、その後のバージョンアップでさらに強力になったf文字列の実践的な使い方を、実際の動作コードに基づき解説します。
1. f文字列(f-string)の基本
f文字列は、文字列の前に f または F を置くことで、文字列内の {}(波括弧)の中に直接変数名や式を記述できる機能です。
name = "Python"
version = 3.12
# これまでの書き方 (.formatメソッド)
print("言語は{}で、バージョンは{}です。".format(name, version))
# f文字列を使った書き方
print(f"言語は{name}で、バージョンは{version}です。")変数を直接埋め込めるためコードが短くなり、どの変数がどこに入るのかが一目でわかるようになります。
2. 実務で役立つ便利なフォーマット指定
単に変数を埋め込むだけでなく、f文字列は内部で様々な処理や書式設定を行うことができます。
式の直接評価と計算
{} の中には、変数だけでなく直接計算式を書くことが可能です。関数を呼び出すこともできます。
price = 1000
tax = 0.1
print(f"税込価格は {int(price * (1 + tax))} 円です。")
# 出力: 税込価格は 1100 円です。数値の書式制御(桁数・ゼロ埋め・カンマ区切り)
:(コロン)以降にフォーマット指定子を記述することで、見た目を細かく制御できます。データのレポート出力時などに欠かせない機能です。
- 小数点以下の桁数指定:
{変数:.2f}(小数第2位まで) - ゼロ埋め:
{変数:04}(4桁でゼロ埋め) - カンマ区切り:
{変数:,}
pi = 3.14159265
sales = 1500000
print(f"円周率: {pi:.2f}") # 出力: 円周率: 3.14
print(f"売上: {sales:,}円") # 出力: 売上: 1,500,000円
print(f"ID: {12:05}") # 出力: ID: 000123. 最新バージョンにおけるf文字列の進化
f文字列はPythonのバージョンアップに伴い、さらに強力な機能が追加されています。最新の環境を利用している場合は、以下の機能も活用できます。
【Python 3.8〜】デバッグに便利な = 指定
変数の値を確認するための print デバッグ時に重宝する機能です。{変数名=} と書くことで、「変数名=値」の形式で出力されます。
user_id = 4953
# 変数名と値を同時に出力
print(f"{user_id=}")
# 出力: user_id=4953【Python 3.12〜】クォーテーションの制限解除
以前のバージョンでは、f文字列の外側と同じクォーテーション(例: ダブルクォーテーション ")を {} の中で使うと構文エラーになっていました。Python 3.12以降はこの制限がなくなり、辞書のキー指定などがより自然に書けるよう改善されています。
# Python 3.12以降で動作
employee = {"name": "山田", "department": "開発部"}
# 外側も内側もダブルクォーテーションが使用可能に
print(f"担当者は{employee["name"]}です。")
# 出力: 担当者は山田です。まとめ
f文字列(f-string)は、Pythonにおける文字列フォーマットの最適解です。可読性が高いだけでなく、実行速度も .format() メソッドなどに比べて高速であることが公式ドキュメント等でも示されています。
これからPythonのコードを書く際は、ぜひ f"" を活用して、すっきりと読みやすいコードを記述してください。



コメント