Pythonのormat関数は、文章(文字列)の中に文字や数字のデータを持った変数を差し込みたい時に使われます。
とくに、print関数とセットで使われることが多く、変数を任意の文字列とともに出力したいときに使われます。
ここでは、format関数の基本的な使い方や、桁数(3桁ごとのカンマ区切りを指定)、小数点、パーセント表示といった使い方などを詳しく解説します。
基本構文
formatの基本構文は以下の通りです。
記述方法
‘文字列{}文字列'.format(変数)
{}の前後に文字列がありますが、どちらか片方でも大丈夫です。
>>> mentai = '明太子'
>>> print('一番好きなうまい棒は{}です。'.format(mentai))
一番好きなうまい棒は明太子です。
複数の変数を指定する方法
Format関数は、複数の変数も扱えます。
>>> mentai = 3
>>> cheese= 6
>>> total = mentai + cheese
>>> print('うまい棒の明太子は{0}本で、チーズは{1}本。合計は{2}本です。'.format(mentai,cheese,total))
うまい棒の明太子は3本で、チーズは6本。合計は9本です。
指定の方法は、いくつかありますので、代表的なものを以下に記述します。
1.インデックス(添え字)で指定
'{0}, {1}, {2}...'.format(変数1, 変数2, 変数3…)
2.キーワード引数で指定
'{key1}, {key2},{key3}..'.format(key1=変数1, key2=変数2, key3=変数3…)
3.辞書型で指定
'{dic1},{dic2},{dic3}…'.format(**{'dic1':変数1, 'dic2':変数2, 'dic3':変数3….} )
{}内の値は、順番通りの仕様であれば、省略可能です。
>>> mentai = 3
>>> cheese= 6
>>> total = mentai + cheese
>>> print('うまい棒の明太子は{}本で、チーズは{}本。合計は{}本です。'.format(mentai,cheese,total))
うまい棒の明太子は3本で、チーズは6本。合計は9本です。
f文字列(python3.6以降)
Python3.6以降では、f文字列フォーマット済み文字列リテラル:f-string)が利用できます。
f文字列とは、クウォート(” ”)で囲んだ文字列の前に、fを記述し、クウォート内に波かっこ({})で囲まれた変数や式があると実行時に置換してくれます。
>>> mentai = 3
>>> cheesee= 6
>>> print(f"うまい棒の明太子は{mentai}本で、チーズは{cheese}本。合計は{mentai + cheese}本です。")
うまい棒の明太子は3本で、チーズは6本。合計は9本です。
Formatメソッドのように、{0},{1}のようなインデックスではなく、変数を直接記述できるので、可読性は高まります。
format内で計算
format内で計算も可能です。
>>> mentai = 3
>>> cheese= 6
>>> print('うまい棒の合計は{}本'.format(mentai + cheese))
うまい棒の合計は9本
様々なformatメソッドの使い方
桁数
3桁ごとのカンマ区切りを指定
数値や金額を取り扱う時に、大きな数値の場合は、3桁ごとの区切りがあった方が見やすいですよね。
Format関数を使うと「{:,}」を指定するだけで、簡単に3桁カンマ区切りを実現できます。
小数点以下の桁数を指定
format関数を使用して小数点以下の桁数も指定できます。
小数点以下の桁数を指定するには、「.[桁数]f」と記述します。
小数点以下が指定した桁数になりますので、
円周率の3.14159265359を小数点以下2桁の表示(3.14)にするには以下のように記述します。
>>> pi = 3.14159265359
>>> print('{:.2f}'.format(pi))
3.14
数値をパーセント表示に変換
0.1の数値を10%のようにパーセントで表示したい時には、以下のように記述します。
>>> c_tax = '{:%}'.format(0.1)
>>> print(c_tax)
10.000000%
先頭にパーセント表示する「{:%}」を記述し「format(数値)」で数値を指定します。
小数点の桁数を指定しないとデフォルト表記で6桁記述します。
小数点の桁数は、「%」の前に「.桁数%」で指定できます。
>>> c_tax = '{:.0%}'.format(0.1)
>>> print(c_tax)
10%
小数点以下を記述しない場合は、0を記述し、2桁表示したい場合は2を指定します。
>>> c_tax = '{:.2%}'.format(0.12345)
>>> print(c_tax)
12.35%
幅と表示位置の指定
文字列を表示する際に、表示位置(左詰め・右詰め・中央)と幅を指定することができます。
>>> right = '右曲がり'
>>> center = '真ん中'
>>> left = '左曲がり'
>>> print('{0:<10} {1:^10} {2:>10}'.format(right,center,left))
右曲がり 真ん中 左曲がり
{}内の左側にはformatメソッドの引数の順番を記述し、「:」から右側は出力位置と指定幅となります。
1番目に埋め込まれたrightの書式は「>10」なので、10の幅を取り、左詰めの出力となります。
2番目に埋め込まれたcenterの書式は「{^10}」なので、10の幅を取り、中央の出力となります。
3番目に埋め込まれたleftの書式は「{<10}」なので、10の幅を取り、右詰めの出力となります。
型の一覧
型 | 説明 |
---|---|
>n | 指定幅で左詰めに出力 |
^n | 指定幅で中央に出力 |
<n | 指定幅で右詰めに出力 |