フォーマット | フォーマットとエスケープシーケンス | Python本格超入門

スポンサーリンク
スポンサーリンク
amazon
スマイルSALE
--:--:--
ad. 価格範囲を指定して商品を探せます

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

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-string
f"Hello, {name}"
・とにかくシンプルで短く書ける
・内部で計算やメソッド処理ができる
・処理速度がformat()より高速
・日常的なコード記述全般
・ログ出力やデバッグメッセージの作成
format()メソッド
"{}".format(val)
・「文章のテンプレート」を先に定義しておき、後から値を流し込める ・設定ファイルや外部の長い文章テンプレートに値を当てはめたいとき

まとめ

Pythonで文字列に変数や値を美しく埋め込むには、f-stringや format() メソッドを使用します。基本はシンプルかつ強力な f-string を使いこなしつつ、数値の書式指定(小数点切り替え :.2f や3桁カンマ :,)の書き方を覚えておきましょう。これらを適切に使い分けることで、データの見栄え(UI)が整い、ユーザーにとっても読みやすいプログラムを出力できるようになります。