参考原文:http://developer.51cto.com/art/201003/189039.htm
1. 格式化运算符:%
2. 使用格式:
3. 说明
(1)在python格式化中,所有东西都可以转换成string类型(即使用%s 可以格式化所有数据)因此,如果没有什么特殊需求完全可以全部使用’%s‘来标记。
例如 %s 可以格式化整型数据:
>>> i = 17
>>> t = 'i am %s' % i
>>> t
'i am 17'
例如 %s 可以格式化字符型数据:
>>> i = '17'
>>> t = 'i am %s' % i
>>> t
'i am 17'
例如 %s 可以格式化浮点型数据:
>>> i = 17.222
>>> t = 'i am %s' % i
>>> t
'i am 17.222'
之所以能这样,是因为当电脑发现第一个值不是%s时,会先调用整型数的函数,把第一个值也就是1转成string类型,然后再调用str()函数来输出。
(2)浮点数的格式化技巧
第一,%f 默认格式化为6位小数的浮点数,如下,
>>> s = 1.23
>>> print 's is %f' % s
s is 1.230000
第二,%f 指定保留的小数位数,如下,
>>> s = 1.23234
>>> print 's is %.3f' % s
s is 1.232
第三,%f 指定输出字符串长度,如下,
>>> s = 11.23234
>>> print 's is %10.1f' % s
s is 11.2
注释:指定输出10个字符串,其中小数位数1位,不够就在字符串前用空格填充。
>>> s = 11.23234
>>> print 's is %010.1f' % s
s is 00000011.2
注释:指定输出10个字符串,其中小数位数1位,不够就在字符串前用0填充。
有时候在%6.2f这种形式中,6和2也不能事先指定,会在程序运行过程中再产生,可以用%*.*f的形式,当然在后面的”要输出的值组“中包含那两个*的值。比如:'%*.*f' % (6, 2, 2.345)就相当于'%6.2f' % 2.345。
第四,据说是最复杂的一种,格式化dictionary
‘%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}
这种形式只用在要输出的内容为dictionary时。小括号中的(name)和(score)对应于后面的键值对中的键.