C
Python/中級/Lesson 14

f-string — モダンな文字列フォーマット (PEP 498)

15分·theory
このチャプター
6/8

f-string — モダンな文字列フォーマット (PEP 498)

🎯 このlessonを読み終えたら

このlessonを読み終えると、以下の3つを自信を持って実践できるようになります。

  • ✅ f-stringの基本 + 式 + フォーマット指定
  • ✅ f'{var=}' デバッグ式 (Python 3.8+)
  • ✅ % / .format() よりf-stringが好まれる理由

学習目標をチェックリストとして手元に置き、すべて答えられるようになったらlessonを閉じてください。

f-string — コード + 実行結果

f"..." = 変数を文字列に埋め込む。Python 3.6+ 標準。最も速く、最も簡潔。

1. 基本

python
名前 = "ホン・ギルドン"
年齢 = 28

print(f"{名前}は {年齢}歳")        # ホン・ギルドンは 28歳
print(f"来年 {年齢 + 1}歳")      # 表現式 OK

2. 旧来の方式との比較

python
# ❌ % フォーマット (Python 2 時代)
"%sは %d歳" % (名前, 年齢)

# ⚠️ str.format() (Python 2.6+)
"{}は {}歳".format(名前, 年齢)

# ✅ f-string (3.6+) — 短くて速い
f"{名前}は {年齢}歳"

3. フォーマット指定

python
パイ = 3.14159265

print(f"{パイ:.2f}")        # 3.14    (小数点 2桁)
print(f"{パイ:.4f}")        # 3.1416
python
print(f"{1234567:,}")       # 1,234,567  (千単位カンマ)
print(f"{0.85:.0%}")        # 85%       (パーセント)
print(f"{42:>5}")           # "   42"  (5桁右寄せ)
print(f"{42:0>5}")          # "00042"  (0パディング)

4. デバッグ (3.8+)

python
x = 10
y = 20
print(f"{x=}, {y=}, {x+y=}")     # x=10, y=20, x+y=30
# 変数名 + 値を一度に — デバッグ最強

5. 複数行・クォート

python
メッセージ = f"""
こんにちは {名前}様
年齢: {年齢}歳
"""

# クォートのエスケープ
print(f'彼が言った: "こんにちは"')        # OK
print(f"名前は \"{名前}\" ")          # 名前は "ホン・ギルドン"

一行まとめ

Python 3.6+ の唯一の標準。% と .format() はレガシー。

🐍 実際に試してみよう — f-string — 直接実行

上の概念を実際にコードで動かしてみてください。値を変えながら実際の動作を確認するのが最速の学習法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒

🤖 AIにこう依頼してみよう

このlessonの概念を理解すると、AIに具体的に指示を出せるようになります。曖昧な「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。

  • 「この % フォーマットと .format() をf-stringに統一して」
  • 「このf-stringにデバッグ式 (f'{x=}') を活用して」

なぜこれがトークンを減らすのか

概念を知らないと、AIの回答を受け取っても「それって何ですか?」とまた質問することになります。その「再質問」がトークンを消費します。概念を一度身につければ、会話が一度で完結します

先に読むとよい概念: with文 — リソースの自動解放
f-string — モダンな文字列フォーマット (PEP 498) - Python