Python String Formatting

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

旧:

コメントを残す

メールアドレスが公開されることはありません。