PROGRAM PYTHON

初心者のためのPython超入門【第17回 文字列フォーマット】

 

 

文字列をformat()メソッドを使って表示する

文字列と数値を混在させて画面に表示する場合は、str()関数を使って数値型を文字列型に変換させる必要があります。

 実行例
>>> year = 2020
>>> month = 4
>>> day = 24
>>> "今日は" + str(year) + "年" + str(month) + "月" + str(day) + "日です"
'今日は2020年4月24日です'

 

format()メソッドの基本的な使い方

strクラスのformat()メソッドを使って上記と同じように表示するには、以下のようにします。
{}は置換フィールドで、format()メソッドの引数の値が{}に置き換わります。
{}に何も指定しなければ、引数の値が順番に置換されます。

 実行例
>>> "今日は{}年{}月{}日です".format(year, month, day)
'今日は2020年4月24日です'

メモ

文字列はstrクラスのインスタンスです。

 

format()メソッドの位置引数を使う

置換フィールドに値の位置を指定することができます。
引数の順番は0から始まります。

 実行例
>>> "今日は{2}年{1}月{0}日です".format(day, month, year)
'今日は2020年4月24日です'

 

format()メソッドの名前引数を使う

置換フィールドに名前をつけて指定することができます。

 実行例
>>> 今日は{arg1}年{arg2}月{arg3}日です".format(arg1=year, arg2=month, arg3=day)
'今日は2020年4月24日です'

 

format()メソッドの書式設定

format()メソッドは、多くの書式を設定することができます。
:(コロン)の左側には位置を指定することができます。

"{:<}”.format() 左揃えで表示する
"{:>}”.format() 右揃えで表示する
"{:^}”.format() 中央揃えで表示する
"{:.小数桁f}”.format() 小数を表示する(デフォルトの小数点以下は6桁)
"{:b}”.format() 2進数を表示する
"{:o}”.format() 8進数を表示する
"{:d}”.format() 10進数を表示する
"{:x}”.format() 16進数を表示する
"{:,}”.format() 千の位でカンマを表示する
"{:.小数桁%}”.format() パーセントを表示する
 実行例
>>> "{:<10}".format(12345)
'12345     '
>>> "{:>10}".format(12345)
'     12345'
>>> "{:^10}".format(12345)
'  12345   '
>>> "{:.2f}".format(12345)
'12345.00'
>>> "2進数={0:b},8進数={0:o},10進数={0:d},16進数={0:x}".format(16)
'2進数=10000,8進数=20,10進数=16,16進数=10'
>>> "{:.2%}".format(3 / 7)
'42.86%'

 

 

-PROGRAM, PYTHON