字符串格式化代码(typecode)
法一:
%格式使用下面的格式
%[(name)] [flags] [width][.precision] typecode
(name)输出字典的value使用,这里的name是字典的key(实际指定时,必须有外面的圆括号)
如:
print("%(n)d %(x)s" % {"n":1,"x":'spam'})
print("%(n)d %(x)s" % dict(n=1,x='spam'))
注意:这种形式不能与其他形式混用,因为%后使用了{}或dict,这两种形式只能够针对”字典”
flags取值为:-(左对齐)、+(正负号)、0(补零),不使用任何flag数字默认是右对齐
[width]和[.precision],分别为总宽度(包括小数点)和精度(小数点后的位数),可指定为*,则须在后面的列表中明确指出具体数值(一般情况下很少指定width和precision为*)
typecode:上表中的格式化代码
法二:format方法
形式.格式
形式:两种表示方式,位置参数(格式安装位置指定即可)和关键字参数(格式必须按照name=‘value’指定)
注意:最后这种形式,形式是以关键字执行,格式必须以name=value形式指定
要被打印的部分(即形式)通用格式:
{fieldname!conversionflag:formatspec}
fieldname是指定参数的一个数字或关键字(由此来确定匹配后面哪个参数),后面跟可选的“.name”或“[index]”成分引用
conversionflag可以是r、s或a分别是在该值上对repr、str或ascii内置函数的一次调用。
formatspec指定了如何表示该值,包括字段宽度、对齐方式、补零、小数点精度等细节,并且以一个可选的数据类型编码结束
冒号:后的formatspec具体形式为:
[[fill]align] [sign] [#] [0] [width] [.precision] [typecode]
fill可取0,即前导补0
align可能是<(左对齐)、>(右对齐)、=(一个标记字符后的补充)、^(居中对齐)
字符串默认是左对齐,数字默认是右对齐
sign可取逗号 , 在使用输出代码为d时(只能配合d使用),每三个数字输出一个逗号
>>> '{0:,d}'.format(999999999)
'999,999,999'
#配合输出代码x或X或o,使输出16进制、8进制数前导加0x或0X或0o
0补0
width表示总宽度,包括小数点位
[.precision]表示精度,小数点后的位数
typecode前面的输出代码
>>> '{0:X},{1:o},{2:b}'.format(255,255,255)
'FF,377,11111111'
>>> '{0:#X},{1:o},{2:b}'.format(255,255,255)
'0XFF,377,11111111'