このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】f文字列

f文字列

 f文字列(フォーマット済み文字列リテラル)は、Python 3.6以降で利用可能な機能で、文字列中に直接変数や式を埋め込むことができ、従来のformatメソッドよりも簡潔で読みやすいコードが書けるようになりました。ここでは、f文字列の基本構文や使い方、書式指定の方法などを具体的な例と表を交えて解説します。例として、商品名と価格を扱うシンプルなプログラムを用います。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.f文字列の基本

1.1. 基本構文と特徴

 f文字列は、文字列リテラルの先頭にfまたはFを付けることで作成され、波括弧 {} 内に任意の式を記述できます。基本構文は次の通りです。

f'...{式}...'

この方式では、式が評価された結果が文字列中に埋め込まれ、結果の文字列が返されます。
以下の表は、f文字列の種類を示しています。

f文字列の種類対象の文字列
f'...'シングルクォートの通常文字列
f"..."ダブルクォートの通常文字列
f'''...'''シングルクォートの三重クォート文字列
f"""..."""ダブルクォートの三重クォート文字列

【例】

item = "sushi"
price = 150
# f文字列を使って値を埋め込む
message = f"{item} costs {price} yen."
print(message)  # 出力: sushi costs 150 yen.

実行結果

sushi costs 150 yen.

解説

変数itemとpriceの値が波括弧内に直接埋め込まれ、直感的に結果がわかりやすくなっています。

1.2. 式や書式指定の利用

 f文字列内では、単なる変数だけでなく、演算子を使った計算や関数の呼び出しも可能です。また、コロン(:)に続けて書式指定を行うこともでき、format関数と同じ仕様で値の整形が行えます。

【例:計算と書式指定】

# 1/3 の値を小数点以下2桁まで表示する例
result = f"{1/3:.2f}"
print(result)  # 出力: 0.33

実行結果

0.33

解説

 1/3 の結果は浮動小数点数ですが、: .2f と指定することで小数点以下2桁に丸められ、"0.33" という文字列に整形されます。

2.f文字列の応用

2.1. 変数と式の埋め込み

 f文字列を利用すると、変数や複雑な式を文字列内に埋め込むことが容易になります。以下は、同じ変数を複数回使用した例です。

【例:同じ変数の再利用】

item = "sushi"
price = 150
# 位置指定不要で変数をそのまま埋め込む
message = f"both spicy {item} and classic {item} cost {price} yen."
print(message)

実行結果

both spicy sushi and classic sushi cost 150 yen.

解説

 この例では、変数itemが2回、priceが1回埋め込まれており、見た目が直感的に理解しやすい形式となっています。

2.2. オブジェクトの属性やシーケンスの要素の参照

 f文字列内では、オブジェクトの属性やシーケンスの要素も簡単に参照できます。たとえば、以下の例では、Employeeクラスの属性を埋め込んでいます。

【例:Employeeクラスを使ったフォーマット】

class Employee:
    def __init__(self, name, department, salary):
        self.name = name
        self.department = department
        self.salary = salary

emp = Employee("Alice", "Sales", 50000)
# オブジェクトの属性を参照して整形済み文字列を作成
message = f"Employee {emp.name} from {emp.department} earns {emp.salary} yen per month."
print(message)

実行結果

Employee Alice from Sales earns 50000 yen per month.

解説

 Employeeクラスのインスタンスempから、属性name、department、salaryを直接f文字列内で参照し、読みやすい文章を生成しています。

まとめ

 f文字列は、Pythonにおける値の埋め込みや整形を非常に簡潔に記述できる強力な機能です。

  • 基本構文は f'...{式}...' で、波括弧内に変数や式を記述できます。
  • 書式指定も可能で、浮動小数点数の丸めや、左右寄せ、桁数の指定なども行えます。
  • さらに、オブジェクトの属性やシーケンスの要素を直接参照できるため、複雑なデータ構造の出力も直感的に記述できます。

 これらのテクニックを活用することで、コードが短く、かつ読みやすくなるため、デバッグや保守の効率が向上します。