在python中,通过使用 % 实现格式化字符串的目的。(这与c语言一致)
其中,在格式化整数和浮点数时可以指定是否补0和整数与小数的位数。
首先,引入一个场宽的概念。
在C语言中场宽代表格式化输出字符的宽度。
例如:
可以在"%"和字母之间插进数字表示最大场宽。
%3d 表示输出3位整型数,不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。 (注意:小数点前的数字必须大于小数点后的数字。小数点前的数值规定了打印的数字的总宽度。如果忽略了(如:.2f,则意味着总宽度无限制。)
%8s 表示输出8个字符的字符串,不够8个字符右对齐。
%2d的输出结果:(场宽为2,右对齐)
for i in range(0,12):
print('%2d'%i)
0
1
2
3
4
5
6
7
8
9
10
11
%02d的输出结果:(场宽为2,补零)
for i in range(0,10):
print('%02d'%i)
00
01
02
03
04
05
06
07
08
09
10
11
%s | 字符串(采用str()显示) | %r | 字符串(采用repr()显示) |
%c | 单个字符 | %o | 八进制整数 |
%d或%i | 十进制整数 | %e | 指数(基底写为e) |
%x | 十六进制整数 | %E | 指数(基底写为E) |
%f或%%F | 浮点数 | %% | 字符% |
# 例:数字格式化
nYear = 2018
nMonth = 8
nDay = 18
# 格式化日期 %02d数字转成两位整型缺位填0
print ('%04d-%02d-%02d'%(nYear,nMonth,nDay))
>> 2018-08-18 # 输出结果
fValue = 8.123
print '%06.2f'%fValue # 保留宽度为6的2位小数浮点型
>> 008.12 # 输出
print '%d'%10 # 输出十进制
>> 10
print '%o'%10 # 输出八进制
>> 12
print '%02x'%10 # 输出两位十六进制,字母小写空缺补零
>> 0a
print '%04X'%10 # 输出四位十六进制,字母大写空缺补零
>> 000A
print '%.2e'%1.2888 # 以科学计数法输出浮点型保留2位小数
>> 1.29e+00