文字列をフォーマットする機能は、C 言語や Fortran 言語のフォーマットされた入出力など、多くのプログラミング言語に含まれています。 Python で文字列をフォーマットするための組み込み演算子は「%」です。
テンプレート
文字列をフォーマットするとき、Python は文字列をテンプレートとして使用します。テンプレートには、実際の値用のスペースを確保し、実際の値が表示される形式を記述するフォーマッタがあります。 Python はタプルを使用して複数の値をテンプレートに渡します。各値はフォーマット文字に対応します。
たとえば、次の例:
print("I'm %s. I'm %d" % ('Pythontab', 1))
上記の例では、
"I'm %s私は %d です」がテンプレートです。 %s は、文字列を表す最初のフォーマット文字です。 %d は 2 番目のフォーマット文字で、整数を表します。 ('Pythontab',99) の 2 つの要素 'Pythontab' と 99 は、%s と %d を置き換える実際の値です。
テンプレートとタプルの間には、書式設定操作を表す % 記号があります。
「I'm %s. I'm %d」% ('Pythontab', 1) 全体は、実際には文字列式を構成します。通常の文字列と同じように変数に割り当てることができます。例:
a = "私は %s. 私は %d" % ('Pythontab', 1)
print(a)
結果は次のようになります: 私は Pythontab です
。us 辞書は実数値を渡すためにも使用できます。次のように:
print("I'm %(name)s. I'm %(age)d" % {'name':'Pythontab', 'age':99})
ご覧のとおり、 2 つの形式文字に名前が付けられています。名前は()で囲みます。それぞれの名前は辞書のキーに対応します。
フォーマット文字
フォーマット文字は、実数値用のスペースを予約し、表示形式を制御します。フォーマット文字には、次のように、表示のタイプを制御するタイプ コードを含めることができます:
%s 文字列 (str() を使用して表示)
%r 文字列 (repr() を使用して表示)
%c 単一文字
%b 2 進整数
%d 10 進整数
%i 10 進整数
%o 8 進整数
%x 16 進整数
%e 指数 (基数は e と表記)
%E 指数 (基数は次のように表記) E)
%f 浮動小数点数
%F 浮動小数点数、上記と同じ
%g 指数 (e) または浮動小数点数 (表示長による)
%G 指数 (E) または浮動小数点数ポイント番号 (表示長による)
%% 文字 "%"
は、次の方法でさらに制御できます:
%[(name)][flags][width].[precision]typecode
(名前) は名前です
フラグには +、-、' '、または 0 を含めることができます。 + は右揃えを意味します。 - は左揃えを意味します。 ' ' はスペースです。これは、正の数の左側にスペースを埋めて、負の数と揃えることを意味します。 0 は 0 パディングを使用することを意味します。
width は表示幅を表します
precision は小数点以下の精度を表します
例:
print("%+10x" % 10)
print("%04d" % 5)
print(" %6.3f" % 2.3)
上記の幅と精度は 2 つの整数です。 * を使用して、これら 2 つの数量を動的に置き換えることができます。例:
print("%.*f" % (4, 1.2))
Python は実際には * を 4 に置き換えます。したがって、実際のテンプレートは「%.4f」です。
概要
Python の組み込み % 演算子を使用して、文字列操作をフォーマットし、文字列の表示形式を制御できます。 Python で文字列をフォーマットする方法は他にもありますが、% 演算子を使用するのが最も便利です。