Pythonのf文字列ってなにがすごいの?他の方法との違いをやさしく解説!
こんにちは。ゆうせいです。
今回は、Pythonにおける文字列フォーマットの中でも特に人気が高い「f文字列(フォーマット済み文字列リテラル)」についてお話しします。
Python初心者の方の中には、「f
をつけるだけで何がそんなに便利なの?」と思っている方もいるかもしれません。
結論から言うと、f文字列はシンプル・速い・読みやすいという三拍子そろった、とっても優れた仕組みなんです!

f文字列ってなに?
まずは、f文字列の基本的な形を見てみましょう。
name = "たかし"
age = 20
print(f"{name}さんは{age}歳です。")
f
のついた文字列の中で、波かっこ {}
の中に変数や式を書くと、自動で文字列に埋め込んでくれます。
このシンプルな書き方がf文字列です。
他の書き方との比較
Pythonには、f文字列以外にも文字列を埋め込む方法がいくつかあります。
方法 | 書き方の例 | 特徴 |
---|---|---|
連結 | "名前は" + name + "です" | 長くなると読みにくい |
format() | "名前は{}です".format(name) | 柔軟だけどちょっと冗長 |
% 演算子 | "名前は%sです" % name | 古い方法、バグを招きやすい |
f文字列 | f"名前は{name}です" | シンプルで読みやすい! |
f文字列の3つの強み
① 読みやすさが圧倒的
たとえば、以下の2つを比べてみてください。
# formatを使うと...
print("合計金額は{}円です(税抜き{}円)".format(total, tax_free))
# f文字列を使うと...
print(f"合計金額は{total}円です(税抜き{tax_free}円)")
どちらが読みやすいですか?
f文字列の方が「文章の流れとコードの流れが一致している」ので、頭にスッと入ってきますよね。
② 数式や関数も書ける!
f文字列の中には式(演算や関数)もそのまま書けます。
x = 10
y = 5
print(f"{x} + {y} = {x + y}") # → 10 + 5 = 15
これ、地味に便利なんです!
formatではこうはいきません。
"{} + {} = {}".format(x, y, x + y)
と、変数が増えるたびにどんどん面倒になります。
③ 処理速度が速い!
Pythonの内部的には、f文字列は最適化されていて処理が速いです。
以下のコードで速度を比較してみましょう。
import time
name = "たかし"
start = time.time()
for _ in range(1000000):
s = f"こんにちは、{name}さん"
print("f文字列:", time.time() - start)
start = time.time()
for _ in range(1000000):
s = "こんにちは、{}さん".format(name)
print("format:", time.time() - start)
結果として、f文字列の方が明らかに速いケースが多いです(環境にもよりますが)。
つまり、読みやすいだけじゃなくて性能もいい!
まさにPythonic(=Pythonらしい)な方法なんです。
デメリットはあるの?
Python 3.6以上でしか使えない
f文字列はPython 3.6から導入された機能です。
古いPython(たとえば3.5以前)では使えません。
また、文字列の中に{}
を含めたいときには、ちょっと工夫が必要です。
print(f"辞書のキーは{{key}}です") # 中かっこは2重にする
実例:文字列フォーマットの違いを比較
# 例:商品の情報を表示する
product = "りんご"
price = 120
# 連結
print("商品:" + product + "/価格:" + str(price) + "円")
# format()
print("商品:{}/価格:{}円".format(product, price))
# f文字列(おすすめ)
print(f"商品:{product}/価格:{price}円")
グラフにするなら、可読性・書きやすさ・実行速度の3軸で比較すると、f文字列がもっともバランスが良い選択になります。
今後の学習の指針
- Pythonではf文字列が文字列フォーマットの第一選択肢になると考えてOKです!
format()
や%
演算子も古いコードではよく出てくるので、一度は触れておきましょう。- 実際に自分でf文字列を使って、小さなプログラムを作ってみると理解が深まります。
次は「f文字列で小数点以下の桁数を制御する」や「文字揃え・パディング」など、フォーマット指定子を学ぶとステップアップできます!
また分からないことがあれば、どんどん聞いてくださいね。
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。