Python | 三連引用符(トリプルクオーテーション)

Python
スポンサーリンク

フォーマット文字列(f文字列)と三連引用符の応用

f文字列(f-string)は Python 3.6 以降の「式を文字列中に直接書ける」超便利な機能です。三連引用符(トリプルクオート)と組み合わせると、複数行テンプレート+変数埋め込みを直感的に書けます。ここでは初心者向けにポイントと「よく使うテクニック」「実例」「練習問題(解答付き)」を簡潔にまとめます。


1) 基本のおさらい(短く)

name = "太郎"
age = 28
msg = f"{name}さんは{age}歳です。"
print(msg)  # 太郎さんは28歳です。
Python

f"..." の中に {式} を書くと、その式が評価されて文字列に埋め込まれます。


2) 三連引用符と組み合わせる(複数行テンプレート)

name = "花子"
plan = "ミーティング"
msg = f"""こんにちは、{name}さん。
今日の予定: {plan}
よろしくお願いします。"""
print(msg)
Python

複数行のメッセージをそのまま書けて、行の途中で変数を埋め込めます。

先頭の余分な改行を防ぎたいときは f"""\(バックスラッシュ)を使います:

msg = f"""\ 
こんにちは、{name}さん。
今日の予定: {plan}"""
Python

3) よく使う便利テクニック

(A) 数値の書式指定(小数点・桁区切りなど)

price = 12345.6789
print(f"価格: {price:.2f}")      # 小数第2位まで: 12345.68
print(f"価格: {price:,.1f}")     # 3桁区切り+小数1位: 12,345.7
Python

(B) 幅・揃え(整形された表の出力)

name = "Aさん"
score = 95
print(f"{'名前':<10}{'得点':>5}")
print(f"{name:<10}{score:>5d}")
# < 左寄せ、> 右寄せ、^ 中央揃え
Python

(C) 変換指定子 !s !r(表示を指定)

val = "Hello\n"
print(f"{val!s}")  # str 表示
print(f"{val!r}")  # repr 表示(エスケープを含めて見たいとき)
Python

(D) 式をそのまま書ける(計算や条件)

a, b = 10, 3
print(f"{a} ÷ {b} = {a/b:.3f}")
print(f"{'合格' if a> b else '不合格'}です。")
Python

(E) 中かっこ { を文字として出す(エスケープ)

print(f"波かっこを出すには {{}} を2個書く: {{example}}")
# 出力: 波かっこを出すには { と } を2個書く: {example}
Python

(F) 日付の書式(datetime を直接フォーマット)

from datetime import datetime
now = datetime(2025,11,3,14,30)
print(f"現在: {now:%Y-%m-%d %H:%M}")  # 2025-11-03 14:30
Python

4) 実用例:メールテンプレート(三連引用符+f文字列)

from datetime import datetime

user = "佐藤さん"
date = datetime.now()
items = [("りんご", 3), ("バナナ", 2)]

body = f"""\ 
{user}

いつもありがとうございます。
ご注文内容({date:%Y/%m/%d}):
"""
for name, qty in items:
    body += f"- {name} x{qty}\n"

body += "\nよろしくお願いします。"
print(body)
Python

出力は読みやすい複数行テンプレートに変数やループの結果を組み込みます。


5) よくある落とし穴(初心者がハマりやすい点)

  • f を忘れると {} はそのまま出力されます(評価されない)。
    msg = f"{name}さん" を忘れない。
  • fr の順序: raw string と組み合わせたい時は rf"..." または fr"..." と書く。順序はどちらでも動くが f を忘れやすい。
  • 波かっこをそのまま書きたいときは {{}} にする。
  • 複雑なロジックを f-string に詰め込みすぎると読みにくくなる。処理は関数で分けて、f-string には最小限の式を入れるのが読みやすい。

6) 練習問題(解答付き)

問題1(基礎)

変数 product="ノートPC", price=134800 を使って、"商品: ノートPC, 価格: 134,800円" のように桁区切りで出力してください(f文字列を使用)。

解答

product = "ノートPC"
price = 134800
print(f"商品: {product}, 価格: {price:,}円")
Python

解説:, で3桁区切り(カンマ)を入れられます。


問題2(応用)

以下のリスト people = [("山田", 92.456), ("鈴木", 85.2)] を、幅を揃えた表で出力してください(名前は左寄せ幅10、点数は小数点以下1桁で右寄せ幅6)。

期待出力例:

名前        得点
山田        92.5
鈴木        85.2

解答

people = [("山田", 92.456), ("鈴木", 85.2)]
print(f"{'名前':<10}{'得点':>6}")
for name, score in people:
    print(f"{name:<10}{score:6.1f}")
Python

解説{name:<10} で左寄せ幅10、{score:6.1f} で幅6・小数1桁の浮動小数点に整形。


問題3(応用・実用)

ユーザー名 user="田中"、注文日 date=datetime(2025,11,3) のデータを使って、次のように先頭に余分な空行がない複数行メッセージを出力してください(f三連引用符を使用)。

期待出力:

田中さん
ご注文ありがとうございます(2025-11-03)。
配送まで少々お待ちください。

解答

from datetime import datetime
user = "田中"
date = datetime(2025,11,3)
msg = f"""\ 
{user}さん
ご注文ありがとうございます({date:%Y-%m-%d})。
配送まで少々お待ちください。
"""
print(msg)
Python

解説f"""\ を使うことで先頭の空行を防ぎ、{date:%Y-%m-%d} で日付の書式指定を行っています。


7) 最後に(実務ワンポイント)

  • テンプレートが複雑なら str.format()Template、あるいはテンプレートエンジン(Jinja2 等)の検討もあり。
  • ただし簡単なメッセージやログ、レポートなどは f文字列+三連引用符で十分に速く・読みやすく書けます。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました