python format関数で出力の桁数指定・0埋め

pythonでprint()を用いて数値や文字列などを表示する際にformat関数を用いて出力を整形する手法についてまとめました。

 

基本的な使い方

format関数は波括弧{ }で囲まれた中に数値や文字列を展開する。
必要に応じて波括弧{ }内に整形オプションを記述することで、数値・文字列を整形する。
波括弧{ }外の文字列はそのままコピーされる。
波括弧{ }自身を出力したい場合は二重波括弧でエスケープする。   { → {{ ,   } → }}

 

桁数指定

:(コロン)の後に桁数を指定してあげる。
文字列の場合は左寄せに、数値の場合は右寄せとなる。
符号や小数点も文字数にカウントされる。

 

右寄せ・左寄せ・中央寄せ

右寄せ・左寄せ・中央寄せを指定するには、:(コロン)の後ろに <, ^, > 文字を置いてあげる

 

0埋め

先ほどの桁数指定で余った空白を0(0以外の文字でも可)で埋める。
符号付きの数値の場合、右寄せ&0埋め指定をすると、符号の前に0が入ってしまうので、
符号のすぐ後ろを0で埋めるためには=(イコール)を使う

 

固定小数点表記

小数点以下の桁数を指定するためには、:(コロン)の後にfを指定

 

2進数・10進数・16進数表記など

数値を2進数・10進数・16進数などに変換。
16進数については x と X の二種類があり、英字部を大文字で表現するか小文字で表現するかの使いわけができる。

使用できる整数の表現型は以下の通り。

‘b’ 2進数。
‘c’ 数値を対応する Unicode 文字に変換。
‘d’ 10進数。
‘o’ 8進数。
‘x’ 16進数。英字部(abcdef)は小文字が使われる。
‘X’ 16進数。英字部(ABCDEF)は大文字が使われる。 
‘n’ 現在のロケールに従い、区切り文字を挿入する。それ以外は’d’と同じ
None 何も指定しなければ’d’と同じ。

 

符号のオプション

数値の符号は、デフォルトでは負数にのみ符号’-‘がつく
‘+’を指定することで、正数にも明示的にプラスの符号’+’をつけることができる。
‘ ‘(スペース)を指定すると、正数には’ ‘(スペース)がつく。
デフォルトだと負数にのみ符号がつくため、正数は符号が無い分1文字少なくなる。その帳尻合わせのためにスペースを付与することができる。

‘+’ 正数にも明示的に符号’+’をつける。
‘-‘ 負数にのみ符号’-‘をつける。(デフォルトNoneと同じ挙動)
‘ ‘ 負数には符号’-‘を、正数には’ ‘(スペース)をつける。
None 負数にのみ符号’-‘をつける。デフォルトの挙動。

 

パーセント表示

:(コロン)の後に%を指定すると、パーセント表示をすることができる。

 

金額表示

:(コロン)の後に,(カンマ)を指定すると、3桁毎にカンマが打たれる

 

 

以上、pythonでformatクラスを用いて数値や文字列を整形する方法についてでした。