「料金は 500 円です」「山田 さん、ようこそ!」——変数の値を文字列に組み込んで表示したい場面は、コードを書いていると山ほど出てきます。📝
そんなとき、いまやPythonでもっとも使われている書き方がf文字列(f-string)。Python 3.6から導入されたこの記法は、書きやすく、読みやすく、そして高速。一度覚えたら手放せなくなる便利機能です。✨
「文字列フォーマット」とは、文字列の書式を指定したり、文字列リテラルに変数を埋め込んだりすることを指します。たとえば「数値を3桁ずつカンマ区切りで表示する」「小数点以下を3桁で揃える」など、見た目を整えるための機能です。
Pythonには複数の文字列フォーマット方法があります。代表的なのは次の3つ。
"%s さん" % name"{} さん".format(name)f"{name} さん"f文字列は書きやすく、可読性が高く、実行速度も速いため、現在のPythonでは最もよく使われている書き方です。🚀
文字列リテラルの頭に小文字の f(または大文字の F)を付けて、埋め込みたい場所に {変数名} を書くだけ。
x = "山田"
greeting = f"{x}さん"
print(greeting) # 山田さん
たったこれだけで、変数の中身が文字列に組み込まれます。👍
x = 500
message = f"{x}円です"
print(message) # 500円です
整数でも浮動小数点でも、型を意識せず自然に書けるのがf文字列の魅力です。
{} の中には、変数だけでなく計算式や関数呼び出しまで書けます。
x = "山田"
y = "太郎"
print(f"{x + y}さん") # 山田太郎さん
x = 100
y = 10
print(f"合計は{x * y}円です") # 合計は1000円です
事前に変数を計算しておく必要がなく、その場で式を評価できる——これがf文字列の真骨頂です。🎯
「文字数を10桁にそろえて、足りない分はゼロで埋めたい」というときは、{変数:0桁数} と書きます。
x = 123
print(f"{x:010}") # 0000000123
0が7つ続いてから123が表示され、合計10桁になりました。IDの管理や、ファイル名の連番作成などで大活躍します。📑
「9000000」のような大きな数字を「9,000,000」と表示したいときは、{変数:,} と書きます。
x = 9000000
print(f"{x:,}円です") # 9,000,000円です
金額表示やレポート生成で、これを知っているだけで一気にプロっぽいアウトプットになります。💰
「小数点以下を3桁で揃えたい」というときは、{変数:.桁数f} と書きます。
x = 0.123
print(f"{x:.5f}") # 0.12300
小数点以下5桁になるように、足りない分は0で埋められます。グラフのラベルや科学計算のレポートで定番のテクニックです。📊
「全体の桁数をそろえつつ、小数点以下も指定したい」場合も書けます。
x = 0.123
print(f"{x:010.3f}") # 000000.123
注意点として、浮動小数点では小数点(.)も1文字としてカウントされます。意図した桁数にならないときはここを疑ってみてください。⚠️
変数だけでなく、リテラルを直接書いても動きます。
print(f"{9000000:,}円です") # 9,000,000円です
テスト的に値を確認したいときに便利な書き方です。
x = 42
print(f"{x=}") # x=42
デバッグのprint文を書くときに圧倒的に便利。「x の値は…」と書いていた人は、ぜひこの書き方を試してみてください。🐛
name = "Tom"
print(f"{name:<10}|") # Tom |
print(f"{name:>10}|") # Tom|
print(f"{name:^10}|") # Tom |
表形式の出力を作るときに重宝します。< が左寄せ、> が右寄せ、^ が中央寄せです。
format メソッドを使う必要ありf文字列はPythonの基本機能の中でも、使い始めてすぐに恩恵を感じやすい機能のひとつ。良書を一冊そばに置いておけば、応用テクニックの引き出しがどんどん増えます。
文字列操作の基本から学べる定番書。f文字列を含めた標準的な書き方が体系的に身につきます。
標準ライブラリの活用法や、Pythonらしい書き方を深く解説。f文字列の応用や周辺機能の理解が一気に深まります。
「f文字列をどう使うべきか」も含めて、Pythonコミュニティの推奨スタイルが90項目に凝縮。中級者必読の一冊。
レポート生成、ファイル名連番作成、ログ出力——f文字列が活躍する実用シーンの宝庫。「学んだことが仕事に直結する」を体感できます。
f文字列を書くときに頻出する { } : といった記号は、地味に指への負担になります。打鍵感が良く複数デバイス切替対応のキーボードがあると、長時間の作業が驚くほど快適に。
新規に書くならf文字列が圧倒的におすすめです。記述量が少なく可読性も高く、実行速度も速いため。formatメソッドは、Python 3.5以前の古い環境を扱うときや、テンプレートを動的に組み立てたいときに使う程度でOKです。✨
はい、トリプルクォート("""...""")と組み合わせれば改行を含む長文も書けます。例:f"""名前: {name}\n年齢: {age}""" のように改行コードも使えます。📝
Python 3.12より前では「f文字列の外側がダブルクォートなら中はシングルクォート」のように使い分ける必要がありました。3.12以降は同じクォートも使えるようになっています。古いバージョンと共存する場合は外側と内側で違うクォートを使うのが安全です。🔐
使えます。例:f"{x:010,}" とすると「10桁・ゼロ埋め・カンマ区切り」が一度に指定できます。「{変数:[寄せ方][符号][ゼロ埋め][幅][,][.精度][型]}」が形式指定の完全な書式です。📐
表示するだけなら問題ありません。ただし、SQLや外部コマンドの文字列を組み立てる場合に直接f文字列で埋めるとインジェクション攻撃の温床になります。SQLならパラメータバインディング、コマンドなら subprocess のリスト形式など、専用の安全な方法を使いましょう。🛡️
Pythonのf文字列は、変数埋め込み・桁数指定・形式整形を一行でスマートに書ける強力な機能です。🚀
f"{変数}" で値を埋め込むf"{x:010}" で固定桁数にf"{x:,}" で金額表示にf"{x:.3f}" で精度を統一f"{x=}" で変数名と値を同時表示この5つのパターンを覚えておくだけで、レポート、ログ、UI表示、CLIツールの出力——あらゆる場面で「整ったアウトプット」を出せるようになります。明日のコーディングで、ぜひf文字列を一行入れてみてください。コードが見違えるはずです。✨