一 简介
python 字符串输出格式化有两种方式 %[s,d,] ,
python 2.6 版本提供了string.format(),其功能也相当强大。talk is cheap,show me the code .
二 使用
2.1 参数映射
str.format 通过 {} 替换 字符串的 %,我们可以使用基于位置映射参数,基于下表,基于参数
比如
-
In [23]: print 'i am a %s,work at %s !' %('dba','youzan')
-
i am a dba,work at youzan !
-
In [24]: print 'i am a {0},work at {1} !'.format('dba','youzan')
-
i am a dba,work at youzan !
-
In [26]: print 'i am a {arg},work at {company} !'.format(arg='dba',company='youzan')
-
i am a dba,work at youzan !
-
format 不限制参数的调用次数
-
In [28]: print 'i am a {0},work at {1},and {1} is good at SAAS service !'.format('dba','youzan')
-
i am a dba,work at youzan,and youzan is good at SAAS service !
2.2 格式化输出
% 提供丰富的格式化输出,format当然也有同样的功能。
填充与对齐
^ 居中
< 左对齐
> 右对齐 后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
具体的使用方式如下
-
In [30]: fs='{:<8}'
-
In [31]: fs.format('dba')
-
Out[31]: 'dba '
-
In [32]: fs='{:1<8}'
-
##左对齐
-
In [33]: fs.format('dba')
-
Out[33]: 'dba11111'
-
#右对齐
-
In [34]: fs='{:1>8}'
-
In [35]: fs.format('dba')
-
Out[35]: '11111dba'
-
#居中
-
In [36]: fs='{:1^8}'
-
In [37]: fs.format('dba')
-
Out[37]: '11dba111'
浮点数精度
-
In [40]: fs='{:.3f}'
-
In [41]: fs.format(3.14159265358)
-
Out[41]: '3.142'
数字的进制
-
b 分别是二进制
-
d 十进制
-
o 八进制
-
x 十六进制。
-
In [42]: ':b'.format(29)
-
Out[42]: ':b'
-
In [43]: '{:b}'.format(29)
-
Out[43]: '11101'
-
In [44]: '{:d}'.format(29)
-
Out[44]: '29'
-
In [45]: '{:x}'.format(29)
-
Out[45]: '1d'
-
In [46]: '{:o}'.format(29)
-
Out[46]: '35'
用逗号 还能用来做金额的千位分隔符。
-
In [47]: '{:,}'.format(2132323455)
-
Out[47]: '2,132,323,455'
三 小结
理论知识就介绍到这里了,如何在实际中运用呢?就交给给位读者朋友了。