格式化字符串时,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”。