Python には、動的な値を含む文字列を組み立てる方法がいくつかあります。現代的で推奨される手法は、Python 3.6 で導入された f-string(フォーマット済み文字列リテラル)です。
f-string — 現代の標準
python
name =
age =
msg =
f プレフィックスを使うと、式を {} の中に直接埋め込めます。簡潔で読みやすく、高速です。これは現代の Python で推奨される手法です。
f"{3.14159:.2f}" # "3.14" — 2 decimal places
f"{1000000:,}" # "1,000,000" — thousands separator
f"{0.85:.1%}" # "85.0%" — percentage
f"{42:05d}" # "00042" — pad with zeros to width 5
f"{'hi':>10}" # " hi" — right-align in width 10
f"{'hi':^10}" # " hi " — center
値のあとの :spec は、精度、パディング、整列、数値の書式を制御します。きれいな出力を作るのに強力です。
f"{name=}" # "name='Ann'" — prints both the expression AND value
= は手軽なデバッグに便利で、変数名とその値の両方を表示します。
"{} is {}".format(name, age) # str.format() — pre-f-string standard
"%s is %d" % (name, age) # %-formatting — old C-style (avoid in new code)
name + " is " + str(age) # concatenation — verbose, error-prone
.format() は古いコードでまだよく見られます。% フォーマットはレガシーです。素朴な連結は推奨されません(冗長で、手動の str() 変換が必要です)。
文字列のフォーマットは、メッセージ、ログ、出力、クエリの組み立てなど、常に必要とされます。
f-string は現代的で読みやすく効率的な標準であり、そのフォーマット指定子(精度、パディング、整列、区切り文字)を知っていれば、冗長なコードなしにきれいでプロフェッショナルな出力を生み出せます。
古い .format() や % のスタイルを認識できることは、既存のコードベースを読む際に役立ちます。
f-string を上手に使うことは、明確でイディオム的な Python を書く上での、小さくも広範な一部です。