mei_13のPython講座 ロゴ

【Pythonコラム】Python の f 文字列:魔法のような文字列フォーマット術




Python の f 文字列:魔法のような文字列フォーマット術

Python で文字列を扱う際、変数の値を埋め込んだり、複雑な書式設定を行ったりすることはよくありますよね。そんな時に役立つのが、Python 3.6 から導入された f 文字列 (formatted string literals) です。f 文字列を使うと、コードが格段に読みやすく、書きやすくなります。この記事では、f 文字列の基本的な使い方から、ちょっと便利な活用方法まで、初心者の方にも分かりやすく解説します。

f 文字列とは?

f 文字列は、文字列リテラルの先頭に f または F を付けることで定義します。文字列の中に {} で囲まれた式を埋め込むことができ、その式は実行時に評価され、結果が文字列に挿入されます。

name = "太郎"
age = 30
message = f"こんにちは、{name}さん。あなたは{age}歳ですね。"
print(message)  # 出力: こんにちは、太郎さん。あなたは30歳ですね。

上記の例では、nameage という変数の値を、f 文字列の中に直接埋め込んでいます。{} の中に変数名を書くだけで、簡単に値を文字列に組み込めるのが f 文字列の大きな特徴です。

f 文字列の基本的な使い方

  1. 変数の埋め込み: 先ほど例で見たように、{} の中に変数名を記述することで、その変数の値を文字列に埋め込むことができます。

    item = "りんご"
    price = 150
    sentence = f"この{item}は{price}円です。"
    print(sentence)  # 出力: このりんごは150円です。
    
  2. 式の評価: {} の中には、変数だけでなく、式も記述できます。

    x = 10
    y = 5
    result = f"{x} + {y} = {x + y}"
    print(result)  # 出力: 10 + 5 = 15
    

    計算式だけでなく、関数呼び出しの結果を埋め込むことも可能です。

    def greet(name):
        return f"Hello, {name}!"
    
    message = f"{greet('花子')}"
    print(message)  # 出力: Hello, 花子!
    
  3. 特殊文字のエスケープ: {} を文字列に含めたい場合は、{{}} と記述することでエスケープできます。

    value = 42
    text = f"The answer is {{value}} = {value}"
    print(text)  # 出力: The answer is {value} = 42
    

f 文字列の便利な活用方法

  1. 書式指定: {} の中で、コロン : を使って書式指定を行うことができます。例えば、小数点以下の桁数を指定したり、数値を特定の幅で表示したりすることができます。

    pi = 3.1415926535
    formatted_pi = f"円周率は {pi:.2f} です。" # 小数点以下2桁まで表示
    print(formatted_pi)  # 出力: 円周率は 3.14 です。
    
    number = 12
    formatted_number = f"番号は {number:03d} です。" # 3桁で表示、足りない桁は0で埋める
    print(formatted_number)  # 出力: 番号は 012 です。
    

    よく使われる書式指定子:

    • .nf: 小数点以下 n 桁まで表示 (例: .2f)
    • nd: 整数を n 桁で表示 (例: 03d)
    • ,: 3桁ごとにカンマ区切り (例: ,)
    • %: パーセント表示 (例: .2%)
  2. デバッグ: Python 3.8 以降では、{} の中に変数名と = を記述することで、変数名とその値を同時に表示することができます。デバッグ時に非常に便利です。

    x = 10
    y = 20
    print(f"{x=}, {y=}")  # 出力: x=10, y=20
    
  3. 複数行の f 文字列: 三重引用符 (""" または ''') を使うことで、複数行にわたる f 文字列を定義できます。

    name = "太郎"
    age = 30
    long_message = f"""
    こんにちは、{name}さん。
    あなたは{age}歳ですね。
    どうぞよろしくお願いします。
    """
    print(long_message)
    

まとめ

f 文字列は、Python で文字列を扱う上で非常に強力なツールです。変数の値を簡単に埋め込んだり、複雑な書式設定を行ったりすることで、コードの可読性を向上させ、開発効率を上げることができます。この記事で紹介した基本的な使い方から便利な活用方法までをマスターして、f 文字列を使いこなしましょう。

練習問題:

  1. あなたの名前と年齢を変数に格納し、f 文字列を使って自己紹介文を作成してください。
  2. 商品の名前、価格、数量を変数に格納し、f 文字列を使ってレシートを作成してください。価格と数量をかけた合計金額も表示してください。
  3. math モジュールを使って円周率(math.pi)を取得し、f 文字列を使って小数点以下5桁まで表示してください。

これらの練習問題を通して、f 文字列の理解を深めていきましょう。



< sprintf()スタイル
コラム一覧に戻る
format()メソッド >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!