(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 )
旧: