フォーマット(文字列埋め込み)

Pythonでは、文字列の中に変数や値を綺麗に埋め込むための方法として、フォーマット(formatting)が広く使われています。Python 3.6以降では、直感的でコードがスッキリ書けるf-string(f文字列)が新しいスタンダードとして登場し、それ以前から使われているformat()メソッドも依然として利用されています。これらの方法をマスターすると、文字列の組み立てが劇的に楽になります。
f-stringによるフォーマット
f-string(フォーマット文字列)は、現在のPython開発において最も推奨されている便利なフォーマット方法です。使い方は非常にシンプルで、文字列の開始クォートの前に小文字の f を付け、文字列内で変数を {変数名} のように囲むだけです。これにより、変数の中身が自動的に文字列へと埋め込まれます。
# f-stringの例
name = "Alice"
age = 25
greeting = f"こんにちは、{name}さん!あなたは{age}歳です。"
print(greeting) # こんにちは、Aliceさん!あなたは25歳です。
この例では、{name}や{age}のように、変数を直接文字列内に埋め込んでいます。コードの見た目と、実際に主力される文章の形がほぼ同じになるため、読みやすさが抜群です。
追加解説:f-stringの中では計算や関数も実行できる
f-stringの {} の中には、単に変数を入れるだけでなく、簡単な計算式(四則演算)を書いたり、文字列メソッドを呼び出したりすることも可能です。
# 波カッコ内での計算・メソッド実行
price = 100
tax = 1.1
user_name = "bob"
# 計算結果や大文字変換(upper)の結果をダイレクトに埋め込む
message = f"{user_name.upper()}様、合計金額は {price * tax} 円です。"
print(message) # BOB様、合計金額は 110.0 円です。
format()メソッドによるフォーマット
format()メソッドは、f-stringが登場する前に広く使われていた一般的な方法です。文章の中にプレースホルダ(値の入れ物)として空の {} を置いておき、文字列の末尾から .format(変数1, 変数2) のようにして順番に値を流し込みます。
# format() メソッドの例
name = "Bob"
age = 30
greeting = "こんにちは、{}さん!あなたは{}歳です。".format(name, age)
print(greeting) # こんにちは、Bobさん!あなたは30歳です。
この例では、format() に渡した引数の順番通りに {} へ値が埋め込まれます。
プレースホルダを使用した詳細な書式指定
f-stringや format() メソッドでは、{} の中で :(コロン)を使うことで、数値の見た目を細かくコントロールする「書式指定」が可能です。
1. 小数点以下の桁数を指定する(.2fなど)
浮動小数点数を表示する際、:.2f と指定すると「小数点以下第2位まで(第3位を四捨五入)」に丸めて表示できます。
value = 1234.56789
# f-stringでの小数点指定
print(f"{value:.2f}") # 1234.57
# format()メソッドでの小数点指定
print("{:.2f}".format(value)) # 1234.57
2. 実務の定番:金額を3桁区切りのカンマにする(:,)
数字の桁数が大きくなったとき、自動的に 1,234,567 のようにカンマを入れて読みやすくする指定です。: の後ろに ,(カンマ)を書くだけで実現できます。
salary = 250000
# 3桁区切りのカンマを表示する
print(f"今月の給与は {salary:,} 円です。") # 今月の給与は 250,000 円です。
引数の名前を使用したフォーマット(formatメソッド限定)
format()メソッドならではの機能として、引数に名前(キー)をつけて挿入順序を固定する方法があります。同じ値を文章内で何度も使い回したいときなどに重宝します。
# 名前付き引数の使用
greeting = "こんにちは、{name}さん!{name}さんの今日は{day}ですね。".format(name="Charlie", day="日曜日")
print(greeting) # こんにちは、Charlieさん!Charlieさんの今日は日曜日ですね。
f-stringとformat()メソッドの比較・使い分け
基本的には、文字数が少なく直感的に記述できる f-string を第一選択として使用するのが2026年現在のモダンなPython開発におけるベストプラクティスです。ただし、以下のように使い分けるとより効果的です。
| 機能・方法 | メリット | 主な使いどころ |
|---|---|---|
f-stringf"Hello, {name}" |
・とにかくシンプルで短く書ける ・内部で計算やメソッド処理ができる ・処理速度がformat()より高速 |
・日常的なコード記述全般 ・ログ出力やデバッグメッセージの作成 |
format()メソッド"{}".format(val) |
・「文章のテンプレート」を先に定義しておき、後から値を流し込める | ・設定ファイルや外部の長い文章テンプレートに値を当てはめたいとき |
まとめ
Pythonで文字列に変数や値を美しく埋め込むには、f-stringや format() メソッドを使用します。基本はシンプルかつ強力な f-string を使いこなしつつ、数値の書式指定(小数点切り替え :.2f や3桁カンマ :,)の書き方を覚えておきましょう。これらを適切に使い分けることで、データの見栄え(UI)が整い、ユーザーにとっても読みやすいプログラムを出力できるようになります。