PYTHON MEBY

Pythonで文字列をフォーマット(format, f文字列 (Python 3.6以降), %演算子)

この記事では、Pythonにおける文字列のフォーマット方法について解説します。formatメソッド、f文字列リテラル、%演算子の3つの方法を例を用いて説明します。それぞれの方法の長所と短所、使い分けについても触れます。

目次

formatメソッド

formatメソッドは、{}プレースホルダーを使用して値を文字列に埋め込む方法です。

name = "Alice"
age = 30
print("私の名前は{}です。年齢は{}歳です。".format(name, age))
print("私の名前は{0}です。年齢は{1}歳です。".format(name, age))
print("私の名前は{1}です。年齢は{0}歳です。".format(age, name))

プレースホルダーの位置は、formatメソッドの引数の順番によって決まります。インデックスを指定することで、順番を入れ替えることも可能です。

data = {"name":"Bob", "age":25}
print("私の名前は{name}です。年齢は{age}歳です。".format(**data))

f文字列リテラル

f文字列リテラル(Python 3.6以降)は、文字列の前にfを付けることで、{}の中に直接変数名を書くことができます。

name = "Charlie"
age = 20
print(f"私の名前は{name}です。年齢は{age}歳です。")
print(f"私の名前は{name}です。来年は{age + 1}歳になります。")

f文字列リテラルは、可読性が高く、複雑な式も簡単に埋め込めます。

%演算子

%演算子は、古い方法ですが、まだ使用されています。%sは文字列、%dは整数、%fは浮動小数点数など、フォーマット指定子が使用されます。

name = "David"
age = 35
print("私の名前は%sです。年齢は%d歳です。" % (name, age))

%演算子は、可読性が低く、複雑な式を埋め込むのが難しいです。新しいコードでは、formatメソッドやf文字列リテラルの使用が推奨されます。

どの方法を使うべきか?

一般的には、f文字列リテラルが最も推奨されます。可読性が高く、シンプルで強力です。formatメソッドも柔軟性があり、多くの場合に利用できます。%演算子は、古いコードとの互換性が必要な場合を除いて、避けるべきです。

関連記事