Python 3.6で導入された f-string(フォーマット済み文字列リテラル) は、文字列の中に変数や計算式を埋め込むための、現在最も推奨されている記法です。
従来の .format() メソッドや % 演算子と比較して、コードの記述量が減り、可読性が大幅に向上します。また、実行速度も高速であるという特徴があります。
この記事では、f-stringの基本的な使い方から、式評価や書式指定といった応用的な機能について解説します。
f-stringの基本構文
f-stringを使用するには、文字列の開始クォート(" または ')の直前に f または F を付けます。そして、文字列内の {}(波括弧) の中に変数名や式を記述します。
構文:
f"文字列 {変数名} 文字列"
具体的な使用例:在庫管理システム
商品の名前と在庫数を表示するプログラムを例にします。
product_name = "ゲーミングモニター"
current_stock = 15
# f-string を使って変数を埋め込む
status_message = f"商品名: {product_name} | 在庫数: {current_stock}個"
print(status_message)
実行結果:
商品名: ゲーミングモニター | 在庫数: 15個
変数が自動的に文字列に変換され、指定した位置に埋め込まれていることがわかります。
{} 内での式評価とメソッド呼び出し
f-stringの強力な点は、{} の中に単なる変数だけでなく、Pythonの式(計算式)やメソッド呼び出しを直接記述できることです。
計算式の埋め込み
在庫数と単価から、在庫総額をその場で計算して表示します。
unit_price = 25000
stock = 4
# {} の中で掛け算を行う
total_value_msg = f"在庫総額: {unit_price * stock}円"
print(total_value_msg)
実行結果:
在庫総額: 100000円
メソッドの呼び出し
文字列のメソッドなどを実行した結果を表示することも可能です。
code = "item-a001"
# .upper() メソッドを呼び出して大文字にする
formatted_code = f"商品コード: {code.upper()}"
print(formatted_code)
実行結果:
商品コード: ITEM-A001
書式指定(フォーマット)
f-stringでは、{値:書式} の形式でコロンの後に書式指定子を記述することで、数値の桁区切りや小数点以下の桁数を制御できます。
price = 12800
tax_rate = 0.1
# 1. カンマ区切り (:,)
# 2. 小数点以下1桁まで表示 (:.1f)
price_info = f"本体: {price:,}円 (税込: {price * (1 + tax_rate):,.1f}円)"
print(price_info)
実行結果:
本体: 12,800円 (税込: 14,080.0円)
まとめ
f"..."のように、クォートの前にfを付けることでf-stringになります。{変数名}で変数の値を埋め込みます。{式}で計算結果やメソッドの戻り値を埋め込みます。{値:書式}で表示形式(桁区切りや小数桁数)を指定できます。
Python 3.6以降を使用している場合は、可読性とパフォーマンスの観点から、.format() よりもf-stringの使用を優先することが推奨されます。
