字符串格式化,python有内置的‘%’、‘.format()函数等’
格式符
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
一、%占位操作符
print("I'm %s. I'm %d year old" % ('Vamei', 99))
>>>I'm Vamei. I'm 99 year old
print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})
>>>I'm Vamei. I'm 99 year old
格式控制:%[(name)][flags][width].[precision]typecode
-
(name)
为命名 -
flags
可以有+,-,’ ‘或0。+表示右对齐。-表示左对齐。’
'为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。 -
width
表示显示宽度 -
precision
表示小数点后精度
print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)
>>> +a
>>>0005
>>> 2.300
二、字符串处理函数 str.format()
- 通过位置映射
'{0},{1}'.format('kzc',18)
Out[102]:
'kzc,18'
'{},{}'.format('kzc',18)
Out[103]:
'kzc,18'
'{1},{0},{1}'.format('kzc',18)
Out[104]:
'18,kzc,18'
- 通过关键字参数映射
'{name},{age}'.format(age=18,name='kzc')
Out[105]:
'kzc,18'
- 通过下标映射
p=['kzc',18]
'{0[0]},{0[1]}'.format(p)
Out[107]:
'kzc,18'
- 格式控制:
填充与对齐: ^、<、>
分别是居中、左对齐、右对齐,后面带宽度;
:
号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
'{:>8}'.format('189')
Out[108]:
' 189'
'{:0>8}'.format('189')
Out[109]:
'00000189'
'{:a>8}'.format('189')
Out[110]:
'aaaaa189'
精度与类型f
'{:.2f}'.format(321.33345)
Out[111]:
'321.33'