str.format() ― 文字列への変数の埋め込み 2 (Python 3)

2022-01-18

#Python3 #基本解説 文字列

Python 3 で文字列に変数や定数の値を埋め込む方法の第2回は、str.format() です。

str.format()

str オブジェクトの .format() メソッドでは、置換フィールド (プレースホルダー) を利用して埋め込みを行います。
置換フィールドは位置番号などを波括弧 {} で囲んだ文字列で、その部分に文字列や変数を埋め込みます。

構文と戻り値

例えば text.format(x, y) のとき、text が置換フィールドを含んだテンプレートで、引数 x と y が text に埋め込むオブジェクトです。
引数の数は可変で、置換フィールドの数に応じて指定します。

置換結果がこのメソッドの戻り値になります。
str オブジェクトはイミュータブル (不変) なので、text の内容は変更されません。

文字列の埋め込み

文字列リテラルの埋め込み例です。
.format() に渡した引数が順に位置番号 0, 1 … に対応します。

変数の埋め込み

変数の埋め込み例です。
整数などの str に変換できるオブジェクトはそのまま指定できます。

キーワードによる引数指定

位置番号の代わりに、キーワードでも引数を指定できます。

書式指定

f 文字列と同様に、書式指定ミニ言語で書式を指定できます。

書式指定の詳細は公式ドキュメントをご覧ください。

str.format() の利点

str.format() の利点は、プレースホルダーを含む文字列をテンプレートとして定義できることです。
テンプレートを別の場所で定義したり、実行時に生成したりして出力結果を変えたい場合に便利です。

なお、組み込み関数 format() は引数や機能が異なります。
str.format() メソッドと同じ名前で紛らわしいのですが、混同しないようにしましょう。

参考

※ Python 3.8 で動作確認。

QooQ