python的2种字符串格式化输出

 字符串格式化代码(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'

  

猜你喜欢

转载自www.cnblogs.com/liliyang/p/9887403.html