プログラミングを学んでいると、「変数の値を文章の中に組み込んで表示したい」という場面が頻繁に出てきます。たとえば「名前」や「合計金額」を、決まった文章と一緒に出力したいときなどです。文字列を + で連結する方法もありますが、数値を毎回 str() で変換したり、+ をたくさん並べたりするのは少し面倒ですよね。
そんなときに役立つのが、Python 3.6から導入された f文字列(f-string) です。f文字列を使えば、変数や計算結果を文字列の中にスッキリ埋め込むことができ、コードがぐっと読みやすくなります。この記事では、f文字列の基本から、桁揃えやゼロ埋めといった便利な書式設定まで、初心者の方にも分かりやすく解説していきます。
コンテンツ
f文字列(f-string)とは?
f文字列とは、文字列の先頭に f を付けて、その中の { }(波括弧)に変数や式を書くことで、値を埋め込める書き方です。「フォーマット済み文字列リテラル(formatted string literal)」の頭文字をとって「f-string」と呼ばれています。
言葉で説明するよりも、実際のコードを見たほうが早いので、さっそく基本的な使い方から見ていきましょう。
f文字列の基本的な使い方
使い方はとてもシンプルで、f"..." のように文字列の前に f を付け、埋め込みたい変数を {変数名} で囲むだけです。
name = "佐藤"
age = 25
# f文字列を使う場合
print(f"私の名前は{name}です。年齢は{age}歳です。")
# 実行結果: 私の名前は佐藤です。年齢は25歳です。
# 従来の + で連結する書き方と比較
print("私の名前は" + name + "です。年齢は" + str(age) + "歳です。")
# 実行結果: 私の名前は佐藤です。年齢は25歳です。+ で連結する書き方と比べると、f文字列のほうが文章の見た目に近く、どんな出力になるか一目で分かりますね。さらに、数値の age をそのまま {age} と書けるのも大きなポイントです。+ 連結では str(age) のように文字列へ変換する必要がありましたが、f文字列では自動で文字列に変換してくれます。
波括弧の中には式も書ける
f文字列の { } の中には、変数だけでなく計算式やメソッドの呼び出しなど、Pythonの「式」を書くことができます。
price = 1200
count = 3
# 中括弧の中で計算もできる
print(f"合計金額は{price * count}円です。")
# 実行結果: 合計金額は3600円です。
# メソッドの呼び出しも可能
fruit = "apple"
print(f"大文字にすると{fruit.upper()}になります。")
# 実行結果: 大文字にするとAPPLEになります。このように、わざわざ計算結果を別の変数に入れなくても、その場で処理を書けるのが便利です。文字列を分割したり結合したりする処理と組み合わせたい場合は、文字列を分割・結合する方法(split, join関数)の記事もあわせて読むと理解が深まります。
数値の書式設定(桁揃え・ゼロ埋め・小数点)
f文字列の本領が発揮されるのが、数値の書式設定です。{値:書式} のように、コロン : のあとに書式を指定することで、表示を細かく整えられます。
pi = 3.14159265
# 小数点以下2桁に丸める
print(f"円周率は約{pi:.2f}です。")
# 実行結果: 円周率は約3.14です。
# ゼロ埋め(5桁)
num = 42
print(f"番号は{num:05d}です。")
# 実行結果: 番号は00042です。
# 3桁区切り(カンマ)
money = 1234567
print(f"金額は{money:,}円です。")
# 実行結果: 金額は1,234,567円です。:.2f は「小数点以下2桁の浮動小数点数」、:05d は「5桁になるよう0で埋めた整数」、:, は「3桁ごとにカンマ区切り」を表します。とくにゼロ埋めはログの連番やファイル名などでよく使う処理です。f文字列を使わずにゼロ埋めをしたい場合は、Pythonで文字列を0埋めする方法(ゼロパディング)で zfill などの方法も紹介していますので、参考にしてみてください。
文字列の桁揃え(左寄せ・中央寄せ・右寄せ)
数値だけでなく、文字列の表示位置もそろえられます。< で左寄せ、^ で中央寄せ、> で右寄せになり、そのあとの数字で全体の幅を指定します。
# 左寄せ・中央寄せ・右寄せ(幅10文字)
word = "Python"
print(f"|{word:<10}|") # 左寄せ
print(f"|{word:^10}|") # 中央寄せ
print(f"|{word:>10}|") # 右寄せ
# 実行結果:
# |Python |
# | Python |
# | Python|表のように複数の項目をきれいに整列させたいときに役立ちます。
辞書の値の埋め込みとデバッグ表示
f文字列の中では、辞書(dict)の値を取り出して埋め込むこともできます。その際、キーを囲むクォートは、外側の文字列と別の種類(外がダブルなら内はシングル)にするのがポイントです。
user = {"name": "鈴木", "score": 95}
# 辞書の値を埋め込む(キーはシングルクォートで指定)
print(f"{user['name']}さんの点数は{user['score']}点です。")
# 実行結果: 鈴木さんの点数は95点です。
# = を付けるとデバッグに便利(Python 3.8以降)
x = 10
y = 20
print(f"{x + y = }")
# 実行結果: x + y = 30辞書そのものの作り方やループ処理についておさらいしたい方は、辞書(dict)の使い方を初心者向けに徹底解説の記事もチェックしてみてください。また、最後の {x + y = } のように = を付ける書き方はPython 3.8以降で使える便利な機能で、「変数名と値」をセットで表示してくれるため、デバッグ時に重宝します。
f文字列を使うときの注意点
便利なf文字列ですが、いくつか注意点もあります。まず、f文字列はPython 3.6以降で使える機能なので、それより古いバージョンでは使えません。また、文字列の中で { や } そのものを表示したいときは、{{、}} のように2つ重ねて書く必要があります。さらに、波括弧の中に複雑な処理を詰め込みすぎると、かえって読みにくくなることもあるため、長い処理は事前に変数へ入れておくのがおすすめです。
もっと効率的にPythonを学びたい人へ
f文字列のように、Pythonには知っているだけでコードが一気に読みやすくなる便利な機能がたくさんあります。とはいえ、独学だと「何から学べばいいのか分からない」「エラーが解決できずに手が止まってしまう」と感じる場面も多いものです。
もし本気で未経験からPythonを身につけたい、あるいはエンジニアへの転職を目指したいなら、プロのマンツーマン指導が受けられるプログラミングスクールを活用するのも一つの方法です。とくに Winスクールの「Python Winner」 は、講師がマンツーマンで指導してくれるため、つまずいたところをその場で質問でき、未経験からでも着実にスキルを習得できます。就職・転職のサポートもあり、まずは無料カウンセリングで学習プランを相談できるので、気になる方は一度チェックしてみてはいかがでしょうか。
※本記事には広告(アフィリエイトリンク)を含みます。
Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】![]()
まとめ
今回は、Pythonのf文字列(f-string)の使い方について解説しました。最後に要点を振り返っておきましょう。
- f文字列は文字列の前に
fを付け、{ }の中に変数や式を書くことで値を埋め込める - 数値も自動で文字列に変換されるため、
str()での変換が不要 {値:.2f}や{値:05d}、{値:,}で小数・ゼロ埋め・カンマ区切りなどの書式設定ができる<^>で文字列の左寄せ・中央寄せ・右寄せができる- 辞書の値の埋め込みや、
{式 = }によるデバッグ表示(Python 3.8以降)も便利 - Python 3.6以降で使える機能で、
{自体を表示したいときは{{ }}と2つ重ねる
f文字列を使いこなせるようになると、出力周りのコードが驚くほどスッキリします。ぜひ普段のコードに取り入れて、Pythonをもっと快適に書いていきましょう。
ナノトイラボ 