さえめろ の めも🐰

さえめろの備忘録です。twitter : @sae_mero_

【Pythonメモ】format関数 - 変数を文字列に埋め込む

■format関数
 Pythonにおいて、変数を文字列への埋め込む時に使う。
 特に文字列と任意の変数を同時に出力する時に使えます。(print関数など)
 引数の部分に埋め込みたい変数を入れることで、{}の部分に変数が入った状態で出力できます。

 "文字列{}文字列".format{変数}

 例えば、以下のように使えます。

egg = 100
tomato = 200
total = egg + tomato
 
print("合計は{}円です".format(total))

 出力:合計は300円です。

■複数の引数を持つformat関数
 format関数には引数を複数設定することができます。
 その場合、複数の{}に対してどの変数を埋め込むかを指定する必要があり、インデックスで指定するのが最も一般的な方法。
 x番目の引数を埋め込みたい場合、{x}と記述します。

 # インデックスで指定する方法
 egg  = 100
 tomato = 200
 total = egg + tomato
 
 print("卵は{0}円で、みかんは{1}円。合計は{2}円でした。".format(egg, tomato, total))

 出力:卵は100円で、みかんは200円。合計は300円でした。

 また、キーワードで指定するか、辞書(ディクショナリ)形式で指定する方法も取れます。

 egg  = 100
 tomato = 200
 total = egg + tomato

  # キーワードで指定する方法
 print("卵は{egg}円で、みかんは{tomato}円。合計は{total}円でした。".format(egg=egg, tomato=tomato, total=total))
 # 辞書形式で指定する方法
 print("卵は{egg}円で、みかんは{tomato}円。合計は{total}円でした。".format(**{'egg':egg, 'tomato':tomato, 'total':total} ))


■list型を使用して埋め込む

 list型を使用して変数を埋め込むこともできます。
 listに埋め込みたい変数を入れ、インデックス番号で指定します。

 egg  = 100
 tomato = 200
 total = egg + tomato

 list = [egg, tomato, total]
 print("卵は{0[0]}円で、 みかんは{0[1]}円。合計は{0[2]}円でした。".format(list))

■n進数で出力
 format関数を使用することにより、n進数での数値の出力が可能です。
 {0:b}と表記することで2進数、
 {0:o}と表記することで8進数、
 {0:d}と表記することで10進数、
 {0:x}と表記することで16進数で出力できます。

 num = 444
 print("""{0}の
 2進数 = {0:b}
 8進数 = {0:o}
 16進数 = {0:x}""".format(num))

 出力:
 818の
 2進数 = 110111100
 8進数 = 674
 16進数 = 1bc

※ """か'''でくくって出力することにより、改行をそのまま出力に反映できる。


■色々な数値指定

#小数点以下指定した桁まで表示
print('{:.3f}'.format(0.12345))

#3桁ずつカンマで区切る
print( '{:,}'.format(123456789))

#パーセントで表示
seito = 150
otoko = 90
print('男子は全生徒の{:.1%}です'.format(otoko / seito))
#出力:男子は全生徒の60.0%です