(Sponsors) DataCamp の無料の Python 入門チュートリアルで Python を学び始めましょう。 インタラクティブなコーディング課題を完了し、専門家のインストラクターによるビデオを見ることによって、データサイエンスを学ぶことができます。 今すぐスタート!
更新日:2020年01月07日
format()メソッドを使用すると、文字列を好きなようにフォーマットすることができます。 template.format(p1, p1, .... , k1=v1, k2=v2)
テンプレートはフォーマットコードを含む文字列で、format()メソッドはその引数を使用して各フォーマットコードに値を代入します。 例:
>>> 'Sam has {0} red balls and {1} yellow balls'.format(12, 31)
{0} と {1} がフォーマットコードです。 {0} は format() の第1引数、つまり 12 に、{1} は format() の第2引数、つまり 31 に置き換えられます。
Expected Output:
Sam has 12 red balls and 31 yellow balls
この方法は単純な書式指定では良いですが、浮動小数点数の精度指定をしたい場合はどうでしょうか。 そのような場合は、フォーマットコードについてもっと学ぶ必要があります。 以下は、フォーマットコードの完全な構文です。 {:}
typeはフォーマットコードと一緒に使用することができます。
| フォーマットコード | 説明 |
|---|---|
d |
整数用 | f |
浮動小数点数用 |
b |
2進数用 |
o 8進数用 |
|
x |
8進16進数用 |
s |
文字列用 |
e |
指数形式の浮動小数点用 |
以下の例で、より明確になります。
例1:
>>> "Floating point {0:.2f}".format(345.7916732)
ここで、2桁の精度を指定し、fが浮動小数点数を表すのに使用されています。
期待される出力:
Floating point 345.79
例2:
12 |
>>> import math>>> "Floating point {0:10.3f}".format(math.pi)
|
ここで精度は3桁、幅は10、浮動小数点の値はfで指定しています。
期待される出力:
Floating point 3.142
例3:
"Floating point pi = {0:.3f}, with {1:d} digit precision".format(math.pi, 3)
ここで{1:d}内のdは整数値であることを示しています。
期待される出力:
Floating point pi = 3.142, with 3 digit precision
浮動小数点数の場合のみ精度を指定する必要があり、整数の場合はValueErrorが発生します。
例5:
'Sam has {1:d} red balls and {0:d} yellow balls'.format(12, 31)
期待する出力:
Sam has 31 red balls and 12 yellow balls
例6:
"In binary 4 is {0:b}".format(4) # b for binary, refer to Fig 1.1
期待する出力:
"In binary 4 is {0:b}".format(4) # b for binary, refer to Fig 1.1
。
In binary 4 is 100
例7:
12 |
array = "A = {0}, B = {1}, C = {2}".format(*array)
|
期待するアウトプットです。
A = 34, B = 66, C = 12
例8:
123456 |
d = {'hats' : 122,'mats' : 42}"Sam had {hats} hats and {mats} mats".format(**d)
|
<9810>予想した出力です。
Sam had 122 hats and 42 mats
format()メソッドは、キーワード引数もサポートしています。
'Sam has {red} red balls and {green} yellow balls'.format(red = 12, green = 31)
Note キーワード引数を使用する場合、数値インデックスではなく {} 内で引数を使用する必要があります。
また、位置引数とキーワード引数を混ぜることもできます
12 |
'Sam has {red} red balls, {green} yellow balls \and {0} bats'.format(3, red = 12, green = 31)
|
format()の方法は非常に新しく、 Python 2.6 で導入されました。
例を見てみましょう。
"%d pens cost = %.2f" % (12, 150.87612)
ここで、%の左側でテンプレート文字列を使用しています。 フォーマットコードには{}の代わりに%を使用しています。 %の右側には、値を格納するためのタプルを使用しています。 %dと%.2fはフォーマット指定子と呼ばれ、%で始まり、データ型を表す文字が続きます。
したがって、%d はタプルの最初の値、すなわち 12 で置き換えられ、%.2f は2番目の値、すなわち 150.87612 で置き換えられます。
例1:
新規:
"{0:d} {1:d} ".format(12, 31)
旧:
"%d %d" % (12, 31)
Expect Output:
12 31
Example 2:
New:
"{0:.2f} {1:.3f}".format(12.3152, 89.65431)
Old:
"%.2f %.3f" % (12.3152, 89.65431)
Expected Output(期待される出力)。
12.32 89.654
例3:
新:
"{0:s} {1:o} {2:.2f} {3:d}".format("Hello", 71, 45836.12589, 45 )
旧: