格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

print(“我的名字叫 %s ,年龄 % d” % (‘小黑’,98))
#我的名字叫 小黑 ,年龄  98

命名使用()括起来。每个命名对应词典的一个key

print(‘我的名字叫 %(name)s ,年龄 %(age)d’ % {“name”:”小三”,”age”:90})

格式符:

%s    字符串 (采用str()的显示)
%r    字符串 (采用repr()的显示)
%c    单个字符
%b    二进制整数
%d    十进制整数
%i    十进制整数
%o    八进制整数
%x    十六进制整数
%e    指数 (基底写为e)
%E    指数 (基底写为E)
%f    浮点数
%F    浮点数,与上相同
%g    指数(e)或浮点数 (根据显示长度)
%G    指数(E)或浮点数 (根据显示长度)
%%    字符”%”

可以用如下的方式,对格式进行进一步的控制:

%[(name)][flags][width].[precision]typecode

name为命名,可以有+,-,''0+表示右对齐。-表示左对齐。''为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。

width表示显示宽度

precision表示小数点后精度

比如:

print("%+10x" % 10)print("%04d" % 5)print("%6.3f" % 2.3)

上面的width, precision为两个整数。我们可以利用*,来动态代入这两个量。比如:

print("%.*f" % (4, 1.2))

Python实际上用4来替换*。所以实际的模板为”%.4f”。


Leave Your Comment

电子邮件地址不会被公开。 必填项已用*标注