Python 3.6以降で利用可能なf-stringは、簡潔で可読性の高い文字列フォーマットを提供します。本記事では、基本的な使い方から応用例までを解説します。
f-stringとは?
f-string(フォーマット文字列)は、文字列の中に変数や式を直接埋め込むことができるPythonの機能です。以下のように、文字列の前にf
またはF
を付けて使用します:
name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")
# 出力: My name is Alice and I am 25 years old.
これにより、従来のstr.format()
や%
演算子を使ったフォーマットよりも簡潔に記述できます。
基本的な使い方
変数の埋め込み
f-stringでは、波括弧 {}
内に変数をそのまま記述できます:
language = "Python"
version = 3.10
print(f"I love {language} version {version}!")
# 出力: I love Python version 3.10!
式の埋め込み
波括弧内に式を記述することも可能です:
x = 10
y = 5
print(f"The result of {x} + {y} is {x + y}.")
# 出力: The result of 10 + 5 is 15.
応用例
フォーマット指定
f-stringでは、フォーマット指定子を使って表示形式を制御できます:
小数点以下の桁数を指定
pi = 3.14159
print(f"Pi is approximately {pi:.2f}.")
# 出力: Pi is approximately 3.14.
数値をゼロ埋め
number = 42
print(f"The number is {number:05}.")
# 出力: The number is 00042.
パーセンテージ表示
accuracy = 0.98765
print(f"Accuracy: {accuracy:.2%}")
# 出力: Accuracy: 98.77%
辞書の値を参照
f-stringを使って辞書の値を参照することも可能です:
data = {"name": "Bob", "age": 30}
print(f"Name: {data['name']}, Age: {data['age']}")
# 出力: Name: Bob, Age: 30
日付と時間のフォーマット
Pythonのdatetime
モジュールと組み合わせて使用すると、日時のフォーマットも簡単に行えます:
from datetime import datetime
now = datetime.now()
print(f"Current date and time: {now:%Y-%m-%d %H:%M:%S}")
# 出力例: Current date and time: 2024-12-25 14:30:45
注意点
-
Python 3.6以降が必要
f-stringはPython 3.6で導入されたため、それ以前のバージョンでは使用できません。 -
セキュリティに注意
f-string内でユーザー入力を直接評価するのは危険です:user_input = "__import__('os').system('rm -rf /')" # print(f"{user_input}") のようなコードは危険!
まとめ
f-stringは、簡潔で強力な文字列フォーマット方法を提供します。本記事で紹介した基本的な使い方や応用例を参考に、日々のPythonコードで活用してください!
関連リンク
最後まで読んでいただき、ありがとうございました!ぜひ、コメントやフィードバックをお寄せください!