Pythonのf文字列(f‑strings)とは?フォーマット文字列を簡単に使う方法
生徒
「Pythonで変数の中身を文字に入れたいとき、簡単な方法がありますか?」
先生
「はい。f文字列(f‑strings)を使えば、文字の中に変数や計算結果をそのまま入れることができますよ。」
生徒
「初心者でも簡単に使えるなら、ぜひ教えてください!」
先生
「では、基本から応用まで順番に学んでいきましょう!」
1. f文字列(f-strings)とは?初心者に選ばれる理由
Pythonのf文字列(正式名称:f-strings)は、Python 3.6から導入された「文字列の中に変数を埋め込む」ための最も新しく、推奨されている書き方です。プログラミング未経験の方でも直感的に理解できるシンプルさが最大の特徴です。
最大の手順はたったの2つ。文字列の先頭(ダブルクォーテーション " の前)に f を書き、埋め込みたい場所を { }(波括弧)で囲むだけです。従来の書き方よりもコードが短く、どこに何が表示されるのか一目で分かるため、読みやすさ(可読性)が劇的に向上します。
# 従来の面倒な書き方(一例)
name = "Python"
print("こんにちは、" + name + "の世界へ!")
# 最新のf文字列を使ったスッキリした書き方
print(f"こんにちは、{name}の世界へ!")
このように、プラス記号(+)で文字を繋ぐ手間がなくなり、記述ミスも減らせるため、現代のPython開発において必須のテクニックとなっています。
2. 基本の書き方:変数をそのまま入れる
Pythonのf-strings(エフストリングス)は、文字列の中に変数の値を直接埋め込める非常に便利な機能です。プログラミング未経験の方でも、直感的にコードが書けるようになります。
使い方はとてもシンプルで、文字列(引用符 " ")の先頭にアルファベットの f を付けるだけです。あとは、変数を波括弧 { } で囲んで記述すれば、実行時にその中身が自動的に展開されます。
# 変数に値を代入します
name = "たろう"
age = 20
# 文字列の先頭に「f」を置くのがポイントです
msg = f"こんにちは、{name}さん。{age}歳ですね。"
# 結果を表示します
print(msg)
実行結果:
こんにちは、たろうさん。20歳ですね。
これまでの古い書き方(%演算子や.formatメソッド)に比べて、「どこに何が入るのか」が一目でわかるのがf-stringsの最大のメリットです。コードの読みやすさ(可読性)が向上するため、チーム開発や未来の自分がコードを見返した際にも、バグを見つけやすくなるという利点があります。
初心者の方は、まずはこの「変数を { } で囲む」という基本形をマスターしましょう。これだけで、ユーザーの名前を挨拶に含めたり、計算結果をメッセージに組み込んだりと、動的なプログラムが簡単に作れるようになります。
3. f-string(f文字列)なら計算式や関数の結果も直接入れられる
f-stringの真骨頂は、{ }(波括弧)の中に変数を書くだけでなく、その場で計算を行ったり、Pythonの便利な関数を呼び出したりできる点にあります。
これまでは「計算した結果を一度別の変数に代入してから表示する」という手順が必要でしたが、f-stringを使えばコードを短く、かつ読みやすく記述できます。プログラミング未経験の方でも直感的に理解しやすい、実用的なサンプルを見てみましょう。
# 足し算の計算結果をそのまま表示
apple_price = 150
orange_price = 100
print(f"合計金額は {apple_price + orange_price} 円です")
# 関数(round関数:四捨五入)を組み合わせて使う
pi = 3.14159265
print(f"円周率を小数点第2位で丸めると {round(pi, 2)} です")
# 文字列の操作(upper関数:大文字に変換)も可能
name = "python"
print(f"学習中の言語は {name.upper()} です")
実行結果:
合計金額は 250 円です
円周率を小数点第2位で丸めると 3.14 です
学習中の言語は PYTHON です
このように、{ } の中でデータの加工まで完結できるため、一時的な変数を作る手間が省けます。特に、小数点以下の桁数調整や、簡単な合計値の算出が必要なシーンで非常に重宝するテクニックです。コードがスッキリすることで、後から見返した際も「何を表示しようとしているのか」が一目で分かるようになります。
4. ゼロ埋めや幅指定など「数値の見た目」を整えるフォーマット指定
Pythonのf文字列(f-strings)が便利な理由は、ただ変数を表示するだけでなく、「数値を3桁で揃えたい」「小数点を切り捨てて表示したい」といった書式設定を、コードの中で直感的に指定できる点にあります。
基本的な書き方は {変数名:書式ルール} という形です。コロン(:)の後ろに、どのように表示したいかのルールを記述します。プログラミング初心者の方が最初によく使う、代表的な3つのパターンを見てみましょう。
# 1. ゼロ埋め(桁数を揃えて見やすくする)
number = 7
print(f"出席番号: {number:03}") # 「03」は3桁になるまで0で埋めるという意味
# 2. 文字の幅指定と寄せ(表のように並べたい時)
name = "Python"
print(f"言語名: |{name:>10}|") # 「>10」は10文字分の幅を作って右に寄せるという意味
# 3. 小数点以下の桁数指定(計算結果をスッキリさせる)
pi = 3.14159265
print(f"円周率: {pi:.2f}") # 「.2f」は小数点第2位まで表示するという意味
実行結果:
出席番号: 007
言語名: | Python|
円周率: 3.14
各書式のポイント解説
- ゼロ埋め(
:03など):伝票番号や日付など、桁数を一定に揃えたい時に重宝します。数値の前に「0」を付けて、指定した桁数(この場合は3桁)に調整します。 - 幅指定(
:>10など):>は右寄せ、<は左寄せを意味します。複数の行を表示する際、文字の位置がズレずに綺麗に整列します。 - 小数点指定(
:.2fなど):計算結果が「3.1415...」と長く続いてしまう場合に、必要な桁数だけを四捨五入して表示できます。fは浮動小数点数(Float)を指します。
これらの指定をマスターすると、ユーザーにとって圧倒的に読みやすい「整理された出力結果」を作れるようになります。
5. 辞書(Dictionary)やリストの値を取り出して使う
f-stringsの便利な点は、変数だけでなく「辞書(ディクショナリ)」や「リスト」の中に格納されたデータも、そのまま直接埋め込めることです。
プログラミング初心者の方が最初につまずきやすいポイントですが、複雑なデータ構造から特定の情報だけを抽出して表示したい際、この書き方を知っているだけでコードが格段にスッキリします。
辞書から値を取り出す例
辞書(キーと値のペア)を使う場合は、クォーテーションの使い分けに注意しましょう。f-strings全体をダブルクォーテーションで囲んでいる場合、辞書のキー指定にはシングルクォーテーションを使います。
# 辞書(データの集まり)を作成
user_data = {"name": "花子", "score": 95}
# 辞書の中身をf-stringsで表示
print(f"名前:{user_data['name']}さん、得点:{user_data['score']}点")
リストから値を取り出す例
リスト(順番のあるデータの並び)の場合は、インデックス番号(0から始まる番号)を指定して呼び出します。計算式も同時に行えるため、非常に効率的です。
# リスト(数字の並び)を作成
numbers = [10, 20, 30]
# リストの各要素をインデックス(0, 1, 2...)で取り出す
print(f"1番目:{numbers[0]}、2番目:{numbers[1]}、合計:{numbers[0] + numbers[1]}")
実行結果:
名前:花子さん、得点:95点
1番目:10、2番目:20、合計:30
このように、リストの要素をそのまま出力するだけでなく、波括弧 {} の中で簡単な計算やデータ抽出を完結させられるのが、現代のPython開発においてf-stringsが推奨される大きな理由です。
6. f文字列(f-strings)を使うメリットと唯一の注意点
Pythonのf文字列(f-strings)は、現代のPythonプログラミングにおいて最も推奨されている文字列の作り方です。最大のメリットは、「直感的に書けるため、コードの書き間違いが激減する」という点にあります。
初心者でも納得!f文字列が選ばれる3つの理由
- 可読性が高い: 変数をそのまま文字列の中に埋め込めるので、見たままの結果が得られます。
- 処理速度が速い: 従来の
format()メソッドや%記法よりも高速に動作します。 - 書式設定が簡単: 小数点の桁数指定や、金額のカンマ区切りなどもその場で完結します。
プログラミング未経験の方でも分かりやすい、具体的なプログラムの例を見てみましょう。例えば、名前と年齢を表示する場合、f文字列を使えば驚くほどシンプルに記述できます。
# 変数にデータを代入します
user_name = "ひなた"
user_age = 25
# f文字列を使った書き方(文字列の前に f をつけるのがポイント!)
message = f"こんにちは、{user_name}さん!来年は{user_age + 1}歳になりますね。"
print(message)
# 実行結果:こんにちは、ひなたさん!来年は26歳になりますね。
このように、波括弧 {} の中で計算ができるのも大きな特徴です。以前の書き方では、文字列と数字を連結するために複雑な変換が必要でしたが、f文字列ならその手間もありません。
使用時の注意点:Pythonのバージョンを確認
非常に便利なf文字列ですが、一点だけ注意が必要です。この機能はPython 3.6以降で導入されたものです。そのため、2026年現在の開発現場ではほぼ問題ありませんが、10年以上前の非常に古いシステム環境や、特殊なサーバー環境では動作しない可能性があります。
もしエラーが出る場合は、Pythonのバージョンを確認するか、後述するformat()メソッドなどの代替手段を検討しましょう。しかし、これから学習を始める方は、まずはこの「f文字列」をマスターしておけば間違いありません。
7. 応用:日付や比率などの表示
日付やパーセント比率も書式指定で整えられます。
import datetime
today = datetime.date.today()
rate = 0.85
print(f"今日の日付:{today:%Y-%m-%d}")
print(f"進捗:{rate:.1%}")
実行結果:
今日の日付:2025-06-10
進捗:85.0%
%Y‑%m‑%dは日付書式、.1%はパーセント表示です。
8. format()との違い
古くから使われてきたformat()より、f文字列は書きやすく可読性が高いです。初心者でも直感的に扱え、「フォーマット文字列」「f‑strings」「Python3.6」といったキーワードで検索エンジンにもヒットしやすいです。
9. ポイント整理
本記事ではf文字列(f‑strings)の使い方を紹介しました。以下がポイントです。
- 文字列の前に
fをつける { }の中に変数や計算式、関数呼び出しが使える- 書式指定でゼロ埋めや少数、幅指定ができる
- 辞書やリストの値もその場で表示可能
- Python3.6以降で使用できる便利機能
ぜひ、実際にパソコンでコードを書いて、f文字列の便利さを実感してみてください!
まとめ
今回の記事で紹介したPythonのf文字列(f-strings)は、変数や計算結果をそのまま文字列に埋め込めるとても便利な表記方法で、初心者から上級者まで幅広く使われている強力な仕組みです。文字列の前にfを付けるだけで、{ }の中に変数・式・関数結果を自然に書き込めるため、コード全体が読みやすくなり、処理の流れも直感的に理解しやすくなります。こうした特徴から、多くのPythonプログラムで利用され、フォーマット文字列を扱う場面でも頻繁に登場します。
特に、f文字列を使うことで、データの整形、計算式の埋め込み、辞書やリストの値の取り出し、日付の書式指定などが簡単に書けるようになる点は、実用的なプログラムを書くうえで大きな力になります。従来のformat()や%記法よりも見た目が読みやすく、記述量も少なく済むことから、コード全体の可読性が向上し、修正や管理も容易になります。
また、数値をゼロ埋めする、幅を指定する、小数点以下の桁数をそろえる、パーセント表示に変換するなどの細かなフォーマット指定もシンプルに記述できるため、画面表示やログ出力、データレポートの整形といった実務的な処理でも役に立ちます。Pythonで表形式のデータを扱うときや、計算結果を見やすく表示したい場面でも重宝されるでしょう。
さらに、初心者がつまずきやすい「変数を文字列に結合する書き方」の問題も、f文字列ならスッキリ解消できます。f文字列の読みやすさと柔軟性は、Pythonが多くの人に愛されている理由の一つでもあります。コードの中で複雑な加工を加えたいときでも、記述が簡潔になるため、初心者の段階から無理なく活用できる点も魅力です。
以下では、今回の内容を踏まえた応用的なサンプルをまとめとして掲載します。さまざまな書式を組み合わせ、辞書や計算式を含む実践的なf文字列の使い方になっています。
import datetime
user = {"name": "さくら", "score": 88}
today = datetime.date.today()
rate = user["score"] / 100
msg = (
f"【利用者情報】\n"
f"名前:{user['name']}\n"
f"得点:{user['score']}点(割合:{rate:.1%})\n"
f"日付:{today:%Y-%m-%d}\n"
f"整理番号:No.{user['score']:03}"
)
print(msg)
この例では、辞書から値を取り出しながら、パーセント表示・幅指定・ゼロ埋め・日付フォーマットなど、f文字列のさまざまな特徴を自然に組み込んでいます。こうした応用は、日報・集計結果・レポート生成などの実用的なプログラムでも頻繁に使われます。f文字列に慣れておくと、作業効率だけでなく、コードの品質向上にもつながります。 今後Pythonを使ってさまざまなプログラムを書いていくと、文字列フォーマットの重要性はますます高くなります。変数が増えるほどf文字列の強みが発揮され、複雑な出力形式でも簡潔に表現できるようになります。今回学んだ変数の埋め込み方法、計算式の表示、辞書やリストの取り扱い、書式指定などを組み合わせて、より自由度の高いコードを作れるようになるでしょう。 最後に、今回の学びをより確実にするために、生徒と先生の会話形式でも振り返りをまとめておきます。
生徒
「f文字列って想像以上に便利ですね!変数もそのまま書けるし、計算結果も入れられるし、すごく読みやすいと感じました。」
先生
「その通りだよ。コードが短くなるだけじゃなくて、文字列とデータのつながりが一目で分かるようになるのがf文字列の大きな特長なんだ。」
生徒
「辞書やリストの値も取り出してそのまま使えるのは驚きました。手間がかなり減りますね!」
先生
「うん。複雑なデータでも{ }の中に書くだけで書けるから、実務でもよく使われているよ。書式指定も覚えておくと見栄えのいい出力が作れるから便利なんだ。」
生徒
「ゼロ埋めや小数点の桁数指定もf文字列で書けるのは助かります。以前はformat()で書いていましたが、こっちの方が分かりやすいです。」
先生
「慣れてしまえばf文字列が自然と使えるようになるよ。これからもたくさん書いて、さらに自分のものにしていこうね。」