Python:format関数の使い方

Python:format関数の使い方

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 指定幅で右詰めに出力

pythonカテゴリの最新記事