字符串格式化
转换说明符:
% 字符:标记转换说明符的开始
转换标志(可选):
- (减号)――左对齐
+ (加号) ――在转换值之前要加上正负号
“”(空白字符)――正数之前保留空格
0(零) ―― 转换值若位数不够用0填充
最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度,如果是* 则宽度会从值元组中读出
.(点)后跟精度值(可选):
如果是实数,精度值就会出现在小数点后的位数
如果是字符串,那么该数字表示最大字段宽度
如果是 * ,精度值将会从元组中读出
字符串格式化转换类型:
转换类型
含义
d,i
带符号的十进制数
o
不带符号的八进制数
u
不带符号的十进制数
x
不带符号的十六进制(小写)
X
不带符号的十六进制(大写)
e
科学计数法表示的浮点数(小写)
E
科学计数法表示的浮点数(大写)
f,F
十进制浮点数
g
如果指数大于-4或小于精度值与e相同,其它与f 相同
G
如果指数大于-4或小于精度值与E相同,其它与f 相同
C
单字符(接受整数或单字符字符串)
r
字符串(使用repr 转换任意 Python 对象)
s
字符串(使用str 转换任意Python 对象)
简单的转换:
>>> ‘Price of eggs: $%d’ % 30
Price of eggs: $30
>>>Price of eggs: %x’% 31
Price of eggs: 1f
>>>from math import pi
>>>’Pi: %f’ % pi
‘Pi: 3.141593’
>>>’Pi: %i’ % pi
‘Pi: 3’
>>>’Using str: %s’ % 42L
’Using str: 42’
>>>’Using str: %r’ % 42L
>>>’Using str: 42L
宽度和精度
>>>’%10f’ % pi #字段宽10
‘ 3.141593’
>>>’%10.2f’ % pi #字段宽10,精度2
‘ 3.14’
>>>’%.2f’ % pi
‘3.14’
>>>’%.5s’ % ‘Guido van Rossum’ #5个字符
‘Guido’
可以使用 * 作为字段宽度或精度(或两者都使用 *),此时,数值会从元组参数中读出
>>>’%.*s’ % (5, ‘Guido van rossum’) #精度5
‘Guido’
符号,对齐,0填充
>>>'%010.2f' % pi #0填充,10位,2精度,10进制
'0000003.14'
>>>’%-10.2f’ % pi #左对齐,10位,2精度,10进制
‘3.14 ’
本文转自 菜鸟的征程 51CTO博客,原文链接:http://blog.51cto.com/songqinglong/1712240