【Python】printで桁合わせ・ゼロ埋め・文字寄せする

PythonのTopに戻る


printで桁合わせ・ゼロ埋めする

・桁合わせ
・ゼロ埋め
・左寄せ・中央寄せ・右寄せ

 

 桁合わせ

例えば小数点以下1ケタで揃えて表示したい場合、Pythonでは次のようにする。

# coding: UTF-8
print("{0}さんの身長は{1:.1f}cm、体重は{2:.1f}kgです。".format("太郎", 178, 65.24))
# 太郎さんの身長は178.0cm、体重は65.2kgです。

このとき整数値 178 には「.0」が付記され、小数値 65.24 は小数点以下第2位が四捨五入されている。


小数点以下の桁数指定は以下のようにする。整数部分の桁数も制御したい場合はドットの前に桁数を指定する。

print("{:.1f}".format(3.141592))
# 3.1
print("{:.3f}".format(3.141592))
# 3.142
print("{:.5f}".format(3.141592))
# 3.14159

この数字は表示されるすべての数字の個数に相当していることに注意しよう(上記の場合では7桁分の出力になっている)。

指数表記を使う場合は以下。ここでは小文字のeを用いているが、大文字のEも使用可能である。

print("{:.1e}".format(0.01))
# 1.0e-02
print("{:.5e}".format(0.01))
# 1.00000e-02

なお、文字列に対して指定した場合は使用される文字数が制御可能。

print("{:.2}".format("abcde"))
# ab
print("{:.5}".format("abcde"))
# abcde

 

 ゼロ埋め

桁数指定と同様だが、08のように先頭に0を書く。

print('zero padding: {:08}'.format(1234))
# zero padding: 00001234

f文字列を使った場合は次のようになる。

i = 1234
print(f'zero padding: {i:08}')
# zero padding: 00001234

空白部分を任意の文字で埋めたい場合は、>の前に文字(1文字)を指定する。

print("{:*>20}".format("abcde"))
# ***************abcde

 

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

左寄せ・中央寄せ・右寄せはそれぞれ <、^、> で指定することができる。

s = 'abc'
print(f'right : {s: >11}')
print(f'center: {s: ^11}')
print(f'left : {s: <11}')
# right : abc
# center: abc
# left : abc

PythonのTopに戻る