PR

【Python】f-stringとは?文字列に変数を埋め込む書き方を初心者向けに解説

unDraw準拠のコードサンプルイラストを使ったPython f-string記事のアイキャッチ画像 Python

Pythonのf-stringとは、文字列の中に変数や式を埋め込むための書き方です。

文字列を+でつなぐよりも、何を表示したいのかを自然な順番で書けます。printで結果を見せる練習や、ログ、メッセージ作成でよく使います。

f-stringは『fを付けた文字列の中で、{} の中だけPythonの式として読む』と考えると整理しやすいです。

この記事では、f-stringの基本、変数や式の埋め込み、小数点の表示、formatとの違い、初心者がつまずきやすい点を解説します。

次の図では、f-stringを文章テンプレートの穴へ変数を差し込むイメージとして見てください。

f-stringの波括弧が文章テンプレートの穴になり変数nameとageが差し込まれて文章になることを示す説明図
f-stringは、文章の中にある波括弧へ変数や式の結果を差し込む書き方です。

次の図では、数値がf-stringの書式指定を通って、画面に出すための読みやすい文字列へ整う流れを見てください。

数値がf-stringの書式指定を通って桁区切りや小数点を整えた表示用文字列になる流れを示すイメージ図
f-stringは値を埋め込むだけでなく、金額や割合のように表示用の形へ整える場面でも使えます。
スポンサーリンク

まず結論:f"...{変数}..."で値を埋め込む

Python公式チュートリアルでは、f-stringは文字列の前にfまたはFを付け、波括弧の中にPython式を書ける文字列リテラルとして説明されています。

f-stringの基本形

基本形は、文字列の前にfを付け、埋め込みたい変数を{}で囲みます。

name = "Sato"
age = 25

message = f"{name}さんは{age}歳です"
print(message)

このコードでは、{name}Satoに、{age}25に置き換わります。文字列そのものの基本はPythonの文字列操作も参考になります。

文字列連結より読みやすい

同じ内容を+でつなぐと、型変換や記号が増えて読みにくくなりがちです。

name = "Sato"
age = 25

print(name + "さんは" + str(age) + "歳です")
print(f"{name}さんは{age}歳です")

f-stringでは、数値のageも表示用の文字列として自然に埋め込めます。型変換の考え方はint() float() str()の記事で詳しく扱っています。

式も書ける

波括弧の中には、変数だけでなく簡単な式も書けます。

price = 1200
count = 3

print(f"合計は{price * count}円です")

ただし、長い計算や複雑な条件をf-stringの中に詰め込みすぎると読みにくくなります。複雑な処理は先に変数へ入れてから埋め込む方が安全です。

小数点や桁区切りを指定する

f-stringでは、:の後に書式指定を書くことで、小数点や桁区切りを調整できます。

rate = 0.12345
amount = 1234567

print(f"割合: {rate:.2%}")
print(f"金額: {amount:,}円")

{rate:.2%}は百分率で小数第2位まで、{amount:,}は3桁区切りで表示します。より細かい書式は、formatメソッドと同じ考え方で理解できます。

formatメソッドとの違い

書き方初心者向けの見方
f-stringf"{name}さん"文字列の中で変数を直接読む
format"{}さん".format(name)後ろから値を差し込む
文字列連結name + "さん"短い場合だけなら読める

新しく書くコードでは、単純な埋め込みならf-stringが読みやすい場面が多いです。既存コードではformatも出てくるため、どちらも読めるようにしておくと安心です。

デバッグ表示にも使える

変数名と値を一緒に見たいときにもf-stringは便利です。

score = 82
print(f"score={score}")

練習中は、処理の途中で変数がどう変わったかをprintで確認する場面が多くあります。print関数とf-stringを組み合わせると、確認用の表示が読みやすくなります。

初心者がつまずきやすいポイント

つまずきまずこう理解する
先頭のfを忘れる{name}がそのまま表示される
波括弧の外で式を書こうとするPython式として読まれるのは{}の中
複雑な式を詰め込む長い処理は先に変数へ入れる
引用符が混ざる外側と内側の引用符を分ける

辞書やリストの値も埋め込める

f-stringの{}の中には式を書けるため、辞書やリストから取り出した値も埋め込めます。

user = {"name": "Sato", "score": 82}

print(f"{user['name']}さんの点数は{user['score']}点です")

ただし、引用符が増えると読みにくくなります。複雑に見える場合は、先に変数へ取り出してからf-stringに入れると安全です。

name = user["name"]
score = user["score"]

print(f"{name}さんの点数は{score}点です")

複数行の文字列で使う

長いメッセージを作るときは、複数行のf-stringを使うこともあります。

name = "Sato"
score = 82

message = f"""
{name}さん
点数: {score}
判定: {'合格' if score >= 60 else '不合格'}
"""

print(message)

ただし、条件式まで入れると読みにくくなることがあります。表示用の文章を作るだけなら便利ですが、処理の本体をf-stringの中へ押し込まないようにしましょう。

format指定は少しずつ覚える

f-stringの書式指定は便利ですが、最初からすべて覚える必要はありません。まずは小数点、桁区切り、幅の指定をよく使います。

目的書き方
小数第2位まで{value:.2f}3.14
パーセント表示{rate:.1%}12.3%
3桁区切り{amount:,}1,234
右寄せ{name:>10}幅をそろえる

練習するときのおすすめ例

f-stringは、変数の値を見やすく表示する練習に向いています。計算そのものより、読みやすい出力を作る意識で試すと身につきます。

  • 名前と年齢を1文で表示する
  • 税込価格を計算して小数なしで表示する
  • 点数と合否をメッセージにする
  • 金額を3桁区切りで表示する

よくある疑問

f-stringはprint専用?

print専用ではありません。f-stringは文字列を作る書き方なので、変数に入れる、ファイルへ書く、ログに渡す、関数の戻り値にするなど、文字列が必要な場所で使えます。

def build_message(name, score):
    return f"{name}さんの点数は{score}点です"

波括弧そのものを表示したいときは?

f-stringで波括弧そのものを表示したい場合は、波括弧を二重にします。{{}}を書くと、表示結果では1つの波括弧になります。

name = "Sato"
print(f"{{name}} の値は {name} です")

古いformatは覚えなくてよい?

新しく短いコードを書くならf-stringで十分な場面が多いです。ただし、既存コードや教材ではformatもまだ出てきます。完全に置き換えるというより、f-stringを中心にしつつ、formatも読める状態にしておくのが現実的です。

特にチーム開発では、既存コードの書き方に合わせることもあります。f-stringを使えるようになったうえで、formatや文字列連結を見ても意味が分かる状態にしておくと、古いコードと新しいコードの両方を読みやすくなります。検索して見つけたサンプルコードの理解にも役立ちます。

公式情報と関連して読みたい記事

まとめ

f-stringは、文字列の中に変数や式を埋め込むための読みやすい書き方です。

  • 文字列の前にfを付ける
  • {}の中に変数や式を書く
  • 小数点や桁区切りも指定できる
  • 複雑な処理は先に変数へ入れる

f-stringを使えるようになると、出力やメッセージ作成のコードがかなりすっきりします。

タイトルとURLをコピーしました