【Python】文字列に変数を埋め込んで1つの文字列を生成する方法

この記事では、Pythonで文字列に変数を埋め込んで1つの文字列を生成する方法と、文字列のテンプレートを作成する方法について解説します。

これらの方法を使うことで、簡単に変数を含んだ動的な文字列を作成することができます。

目次から探す

文字列のフォーマット

文字列のフォーマットとは、変数や値を文字列に埋め込んで、1つの文字列を生成する方法です。

Pythonでは、いくつかの方法が提供されています。

以下では、代表的な3つの方法について解説します。

%演算子を使ったフォーマット

«%演算子»を使ったフォーマットは、古いバージョンのPythonでよく使われていた方法です。

以下のような形式で使用します。

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

上記のコードでは、«%s»は文字列を、«%d»は整数を表します。

«%»の後に続く変数は、«%演算子»の右側の括弧内に順番に指定します。

このようにすることで、«name»と«age»の値が文字列に埋め込まれ、«message»には«私の名前はAliceです。年齢は25歳です。»という文字列が代入されます。

str.format()メソッドを使ったフォーマット

«str.format()メソッド»を使ったフォーマットは、Python 2.6以降で導入された新しい方法です。

以下のような形式で使用します。

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

上記のコードでは、«{}»が変数を表します。

«format()メソッド»の引数に順番に指定した変数が、«{}»の中に埋め込まれます。

«message»には«私の名前はAliceです。年齢は25歳です。»という文字列が代入されます。

f文字列を使ったフォーマット

«f文»字列は、Python 3.6以降で導入された最新のフォーマット方法です。

以下のような形式で使用します。

name = "Alice"
age = 25
message = f"私の名前は{name}です。年齢は{age}歳です。"
print(message)

上記のコードでは、«f»を文字列の前に付けることで、変数を直接埋め込むことができます。

«{}»の中に変数を書くだけで、その値が文字列に埋め込まれます。

«message»には«私の名前はAliceです。年齢は25歳です。»という文字列が代入されます。

これらの方法を使うことで、文字列に変数を埋め込んで1つの文字列を生成することができます。

使いやすさや可読性など、状況に応じて適切な方法を選んで利用しましょう。

文字列のテンプレート

文字列のテンプレートとは、あらかじめ定義されたテンプレートに変数を埋め込んで、動的な文字列を生成する方法です。

Pythonでは、«string.Templateクラス»やJinja2ライブラリを使って文字列のテンプレートを作成することができます。

string.Templateクラスを使ったテンプレート

«string.Templateクラス»は、Python標準ライブラリに含まれているテンプレートエンジンです。

以下は、«string.Templateクラス»を使ったテンプレートの例です。

from string import Template
# テンプレートの定義
template = Template("私の名前は$名前です。$年齢歳です。")
# 変数の値を埋め込んで文字列を生成
name = "山田太郎"
age = 25
result = template.substitute(名前=name, 年齢=age)
print(result)

上記のコードでは、«string.Templateクラス»の«substitute()メソッド»を使って、テンプレート内の変数を実際の値で置換しています。

出力結果は以下の通りです。

私の名前は山田太郎です。25歳です。

Jinja2ライブラリを使ったテンプレート

Jinja2は、Pythonの人気のあるテンプレートエンジンの1つです。

Jinja2を使うと、より高度なテンプレート処理を行うことができます。

以下は、Jinja2ライブラリを使ったテンプレートの例です。

from jinja2 import Template
# テンプレートの定義
template = Template("私の名前は{{ name }}です。{{ age }}歳です。")
# 変数の値を埋め込んで文字列を生成
name = "山田太郎"
age = 25
result = template.render(name=name, age=age)
print(result)

上記のコードでは、Jinja2ライブラリの«Templateクラス»の«render()メソッド»を使って、テンプレート内の変数を実際の値で置換しています。

出力結果は以下の通りです。

私の名前は山田太郎です。25歳です。

Jinja2は、より複雑なテンプレート処理や条件分岐、ループ処理などもサポートしていますので、柔軟なテンプレートの作成が可能です。

以上が、Pythonで文字列のテンプレートを作成する方法です。

«string.Templateクラス»やJinja2ライブラリを使うことで、変数を埋め込んだ動的な文字列を簡単に生成することができます。

目次から探す