pythonで文字列の書式を設定する方法

python

pythonで数値を指数にしたり小数点以下の桁数を揃えて出力したい場合にformat書式より設定することができます.本記事では例題を用いて解説して行きます.

スポンサーリンク

書式設定

表示される数値を指数の書式などに変える方法は,format置換フィールド{}のインデックス番号の右に:コロンを付けて書式を指定してます.
{インデックス番号:書式指定}
コロン:の後ろには、次のような項目で構成される「書式指定子」を記述します.
[アレンジ][符号][幅][.精度][タイプ]

[アレンジ]:文字の位置を決めます

引数効果
<スペース内で,左詰め
>スペース内で,右詰め
^スペース内で,中央寄せ

[IN]アレンジの方法を試してみましょう.

a=1234
print("スペース幅   0123456789")
print("アレンジ <  ","{0:<10}".format(a))
print("アレンジ >  ","{0:>10}".format(a))
print("アレンジ ^  ","{0:^10}".format(a))

[OUT]

スペース幅   0123456789
アレンジ <   1234      
アレンジ >         1234
アレンジ ^      1234   

[符号]:符号+ーの有無を決めます

引数効果
+符号を正数(+)、負数(-)の両方に付けます.
符号(-)を負数のみ付けます .(デフォルト)
「 」
空白文字
正数の前に空白を付け、負数の前に符号(-)を付けます.

[IN]符号を変えて正数,負数がどのように表示されるか見ていきましょう.

a=12.34
b=-12.34
print("符号 +      ","{0:<+10}".format(a))
print("符号 +      ","{0:<+10}".format(b))
print("符号 -      ","{0:<-10}".format(a))
print("符号 -      ","{0:<-10}".format(b))
print("符号 空白   ","{0:< 10}".format(a))
print("符号 空白   ","{0:< 10}".format(b))

[OUT]

スペース幅   0123456789
符号 +       +12.34    
符号 +       -12.34    
符号 -       12.34     
符号 -       -12.34    
符号 空白     12.34    
符号 空白    -12.34  

符号が空白の時に正数の左側に空白があることがわかります.

[幅] :文字スペースの幅を決めます

スペースの表示幅を指定,デフォルトは表示内容が表示幅となる.
幅の前に0を入力すると数値型に対し符号の後ろを0で埋めます。’+0000123′

[IN]幅設定の前に0を入れて表示を確認しましょう.

a=-12.34
print("スペース幅   0123456789")
print("            ","{0:10}".format(a))
print("            ","{0:010}".format(a))

[OUT]

スペース幅   0123456789
                 -12.34
             -000012.34

[.精度]:小数点以下の桁数を決めます

ドット「.」の後に小数点以下の桁数を指定します.

[タイプ]: 表示タイプを決めます

タイプの引数

引数効果
s文字列 デフォルト値
e浮動小数点数(指数表記)e(小文字)
E浮動小数点数(指数表記)E(大文字)
f浮動小数点数(小数点表記)nan(非数),inf(無限大)
E浮動小数点数(小数点表記 NAN(非数),INF(無限大)

注意)整数値の指定はできない

[IN] 小数点桁数の違い,指数表記,小数点表記を見ていきます.

a=12.34567
print("スペース幅   0123456789")
print(".2e         ","{0:<10.2e}".format(a))
print(".3e         ","{0:<10.3e}".format(a))
print(".2f         ","{0:<10.2f}".format(a))
print(".3f         ","{0:<10.3f}".format(a))

[OUT]

スペース幅   0123456789
.2e          1.23e+01  
.3e          1.235e+01 
.2f          12.35     
.3f          12.346  

桁数やタイプが正しく表示されました.

トップページへ戻る

 スポンサーリンク

コメント

タイトルとURLをコピーしました