格式化输出的几种方法 主要介绍format函数的用法

1 str自带函数格式化输出 rjust() ljust() center() zfill()


zfill是补齐零


介绍:

rjust(...)

    S.rjust(width[, fillchar]) -> string


给字符串格式化输出,对字符串本身不做处理,只是返回一个格式化过的字符串,可以指定字符串宽度,并且指定填充的字符,默认填充空格!


作用: 对齐输出


举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
In [26]: s1="1"        
In [27]: s2="1234"     
In [28]: s1
Out[28]: '1'
In [29]: s2
Out[29]: '1234'
In [30]: for in s1,s2:
   ....:     print i
   ....:     
1
1234
 
#左对齐输出,不满长度为4的,默认填充空格
In [34]: for in s1,s2:
   ....:     print i.rjust(4)
   ....:     
   1
1234


#填充其他字符

1
2
In [35]: s1.rjust(4,"*")
Out[35]: '***1'


#补齐0

1
2
In [38]: s1.zfill(4)
Out[38]: '0001'

等于

1
2
In [40]: s1.rjust(4,'0')
Out[40]: '0001'

2 浮点型指定宽度输出

1
2
3
4
In [36]: 1.0/3
Out[36]: 0.33333333333333331
In [37]: "%.3f" % (1.0/3)
Out[37]: '0.333'


3 format函数格式化化输出,格式有点像C语言,替换变量

也是str自带函数,可以多用多用

它通过{}和:来代替%。


通过位置

1
2
In [48]: print '{0} is a {1}'.format('cat','animal')
cat is a animal


1
2
In [49]: print '{1} is a {0}'.format('cat','animal'
animal is a cat


解释:{}的内容,会被format()中的参数代替,可以在'{}'里填写上数字来指定format()中的位置,但如果'{}'里面是key参数其中的内容会被format()中的value值代替

通过关键字参数

1
2
In [50]: print '{name} is a {age}'.format(name='andy', age=20)  
andy is 20


通过下标

1
2
3
In [56]: l = ['andy''good']
In [60]: '{0[0]} {0[1]} {0[0]}'.format(l) 
Out[60]: 'andy good andy'


格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

填充与对齐

填充常跟对齐一起使用

^、<、>分别是居中、左对齐、右对齐,后面带宽度

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

比如

1
2
3
4
5
6
In [15]: '{:>8}'.format('189')
Out[15]: '   189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'

精度与类型f

精度常跟类型f一起使用

1
2
In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。

其他类型

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

1
2
3
4
5
6
7
8
In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'

用,号还能用来做金额的千位分隔符。

1
2
In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1770594如需转载请自行联系原作者

cuizhiliang
上一篇:答就业不顺的毕业生——思路清楚了就坚决执行


下一篇:[EntLibFAQ]“不允许所请求的注册表访问权”的解释[0508Update]