Python

【Python】文字列に値を埋め込む【フォーマット】

この記事では、Pythonの文字列中に値を埋め込む方法を解説します。値を文字列に埋め込むことで、文字列を整形しながら出力することができます。それでは、値の埋め込み方を見ていきましょう❗️

フォーマット済み文字列リテラル

フォーマット済み文字列リテラルを使うことで、簡単に文字列にデータを埋め込むことができます。この方法が一番オススメです❗️
※ Python3.6から追加

埋め込む方法

  1. 文字列リテラルのプレフィックスとして、f、またはFを記述
  2. f''
  3. 文字列中の値を埋め込みたい箇所に{}を記述
  4. f'{}'
  5. {}の中に埋め込む値を記述
  6. f'{埋め込む値や変数}'

サンプル

以下のコードでは、文字列リテラルを使って直接値を埋め込んでいますが、その際のクォーテーションには注意してください。

# 変数も埋め込める
age = 15

text = f'名前: {"ミカサ・アッカーマン"}, 年齢: {age}, 所属: {"調査兵団"}'
print(text)

実行結果

名前: ミカサ・アッカーマン, 年齢: 15, 所属: 調査兵団

参考フォーマット済み文字列リテラル — Python ドキュメント

str.formatメソッド

str.formatメソッドを使うことで、文字列にデータを埋め込むことができます。

書式

文字列中の値を埋め込む箇所に{数字}を記述し、数字を0から1ずつ増やしていきます。そして、formatメソッドを呼び出し、引数に挿入したい値を順番に記述します。

'{0} {1}'.format({0}に埋め込む値, {1}に埋め込む値)

数字は省略することも、

'{} {} {}'.format(値1, 値2, 値3)

キーワードで指定することもできます。

'{name} {age} {gender}'.format(name='名前', age='年齢', gender='性別')

サンプル

文字列中に数字とキーワードのどちらも指定されている場合は、formatメソッド内で数字の値から指定し、その後でキーワードの値を指定しましょう。

text = '名前: {0}, 年齢: {age}, 所属: {1}'.format('エレン・イェーガー', '調査兵団', age=15)
print(text)

実行結果

名前: エレン・イェーガー, 年齢: 15, 所属: 調査兵団

%記法

C言語などでも使われている%記法を使って、データを埋め込むことができます。

書式

値を埋め込みたい箇所に「フォーマット指定子」を記述し、%を使って埋め込む値を文字列の後に繋ぎます。

'%s %d' % (値1, 値2)

%s%dはフォーマット指定子(変換指定子)と呼ばれ、記述した箇所に特定の型の値を埋め込むことができます。

フォーマット指定子には、以下のようなものがあります。

%d 符号付10進整数
%f 10進浮動小数点数
%c 文字一文字
%s 文字列(str()で変換)

サンプル

試しに文字列中にデータを埋め込んでみます。

text = '名前: %s, 年齢: %d, 所属: %s' % ('アルミン・アルレルト', 15, '調査兵団')
print(text)

実行結果

名前: アルミン・アルレルト, 年齢: 15, 所属: 調査兵団

参考printf 形式の文字列書式化 — Python ドキュメント

まとめ

この記事では、Pythonで文字列に値を埋め込む方法を解説しました。

基本的には、フォーマット済み文字列リテラルが簡単に扱えるのでおすすめですが、比較的に最近追加されたのでバージョンには気をつけましょう❗️

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』