Pythonで文字列を扱っているとき、f"Hello, {name}!"
のような書き方を見かけることがあります。
これは「f文字列」または「フォーマット文字列」と呼ばれるもので、Python 3.6以降で使えるとても便利な書き方です。
この記事では、f"〜"
の意味や使い方を、実際の例を交えて初心者にもわかりやすく解説します。
f"〜"とは?
f"〜"
は、文字列の中に「変数や式の結果を埋め込む」ための書き方です。
f
は「formatted(整形済み)」の意味で、f文字列(f-string)とも呼ばれます。
文字列の中に {}
を書いて、その中に変数名や計算式を書くと、その部分が自動的に置き換えられます。
具体例①:変数を文字列に埋め込む
たとえば、ある人の名前を含んだ挨拶文を作るとき、f文字列を使えばとても簡単です。
1 2 3 4 |
name = "Alice" greeting = f"Hello, {name}!" print(greeting) |
このコードでは {name}
の部分に "Alice"
が入り、出力は次のようになります。
1 2 |
Hello, Alice! |
文字列を +
で連結するよりも、はるかに見やすく書けます。
例2:数値や計算式を埋め込む
計算結果もそのまま {}
の中に書けます。別に計算してから代入する必要はありません。
1 2 3 4 5 |
a = 5 b = 3 result = f"{a} × {b} = {a * b}" print(result) |
出力:
1 2 |
5 × 3 = 15 |
このように、計算式をそのまま書いても自動的に評価して結果が表示されます。
例3:関数の結果や辞書の値も使える
f文字列では、関数の戻り値や辞書の値も直接埋め込めます。
1 2 3 4 5 |
def get_name(): return "Bob" print(f"Hi, {get_name()}!") |
出力:
1 2 |
Hi, Bob! |
辞書を使う例:
1 2 3 |
user = {"name": "Carol", "age": 28} print(f"{user['name']} is {user['age']} years old.") |
出力:
1 2 |
Carol is 28 years old. |
例4:ファイルパスやURLの組み立てに使う
f文字列はパスやURLなど、動的に文字列をつなぎたい場面でも便利です。
1 2 3 4 5 |
folder = "images" filename = "cat.png" path = f"/user/data/{folder}/{filename}" print(path) |
出力:
1 2 |
/user/data/images/cat.png |
従来の文字列連結で書くと煩雑になりがちなパス処理も、f文字列なら読みやすくスッキリ書けます。
例5:数値のフォーマット表示
f文字列では、数値の桁数や小数点以下の表示も自由にコントロールできます。
1 2 3 |
price = 1234.5678 print(f"価格:{price:.2f}円") |
出力:
1 2 |
価格:1234.57円 |
.2f
は「小数点以下2桁で表示する」という意味です。
f文字列と他のフォーマット方法の比較
Pythonには他にも .format()
や %
演算子を使った文字列フォーマット方法がありますが、f文字列は以下の点で優れています。
- コードが短く、読みやすい
- 変数や式をそのまま
{}
に書ける - ネストした式や複雑な値も自然に扱える
たとえば、次の3つはすべて同じ意味になります:
1 2 3 4 5 |
name = "Dave" print(f"Hello, {name}!") # f文字列 print("Hello, {}".format(name)) # .format()方式 print("Hello, %s" % name) # %演算子方式(古い) |
これから使うなら f文字列が一番おすすめです。
まとめ
f"〜"
は文字列の中に変数や式を埋め込めるフォーマット機能{}
の中に変数・計算式・関数などをそのまま書ける- ファイルパス・URLの組み立てや数値フォーマットにも便利
+
での連結よりスッキリ書けて、読みやすく保守もしやすい- Python3.6以降では文字列フォーマットの標準的な方法
日常的な出力処理からログ記録、データ表示まで、あらゆる場面で活用できる便利な構文です。
Pythonを使うなら、ぜひ f 文字列をマスターしておきましょう。