概要
Pythonで「書式化演算子%を使った文字列の書式設定(printf形式の書式化)」の動作を確認してみました。以下のページを参考にしました。
実装
以下のファイルを作成しました。
sample.py
num1 = 30
result = "10進数では %d 、16進数では %x です" % (num1, num1)
print(result)
def mypoint(str1, num1):
result = "My name is %-10s, point is %5d." % (str1, num1)
print(result)
mypoint("Yamada", 75)
mypoint("Sugiyama",1825)
name = "Suzuki"
old = 18
print("名前は%-8sです。年齢は%03d歳です。" % (name, old))
print("10進数=%d, 16進数=%x" % (20, 20))
print("指数表記=%e, 固定小数点表記=%f" % (0.0752, 0.0752))
print("10進数=%(decnum)d, 16進数=%(hexnum)x" % {"hexnum":20, "decnum":20})
print("数値1=%x, 数値2=%#x" % (30, 30))
print("数値1=%5d, 数値2=%05d" % (30, 30))
print("数値1=[%5d], 数値2=[%-5d]" % (30, 30))
print("数値1=%d, 数値2=%d, 数値3=% d, 数値4=% d" % (30, -30, 30, -30))
print("数値1=%+d, 数値2=%+d" % (30, -30))
print("数値1=%d, 数値2=%4d, 数値3=%4d" % (30, 30, 72536))
print("数値1=%d, 数値2=%*d" % (18, 5, 42))
print("数値1=%f, 数値2=%.3f" % (1/3, 1/3))
print("数値1=%f, 数値2=%.*f" % (1/3, 3, 1/3))
以下のコマンドを実行しました。
$ python3 sample.py
10進数では 30 、16進数では 1e です
My name is Yamada , point is 75.
My name is Sugiyama , point is 1825.
名前はSuzuki です。年齢は018歳です。
10進数=20, 16進数=14
指数表記=7.520000e-02, 固定小数点表記=0.075200
10進数=20, 16進数=14
数値1=1e, 数値2=0x1e
数値1= 30, 数値2=00030
数値1=[ 30], 数値2=[30 ]
数値1=30, 数値2=-30, 数値3= 30, 数値4=-30
数値1=+30, 数値2=-30
数値1=30, 数値2= 30, 数値3=72536
数値1=18, 数値2= 42
数値1=0.333333, 数値2=0.333
数値1=0.333333, 数値2=0.333
まとめ
何かの役に立てばと。