1 str自带函数格式化输出 rjust() ljust() center() zfill()
zfill是补齐零
介绍:
rjust(...)
S.rjust(width[, fillchar]) -> string
给字符串格式化输出,对字符串本身不做处理,只是返回一个格式化过的字符串,可以指定字符串宽度,并且指定填充的字符,默认填充空格!
作用: 对齐输出
举例:
In [26]: s1="1" In [27]: s2="1234" In [28]: s1 Out[28]: '1' In [29]: s2 Out[29]: '1234' In [30]: for i in s1,s2: ....: print i ....: 1 1234 #左对齐输出,不满长度为4的,默认填充空格 In [34]: for i in s1,s2: ....: print i.rjust(4) ....: 1 1234
#填充其他字符
In [35]: s1.rjust(4,"*") Out[35]: '***1'
#补齐0
In [38]: s1.zfill(4) Out[38]: '0001'
等于
In [40]: s1.rjust(4,'0') Out[40]: '0001'
2 浮点型指定宽度输出
In [36]: 1.0/3 Out[36]: 0.33333333333333331 In [37]: "%.3f" % (1.0/3) Out[37]: '0.333'
3 format函数格式化化输出,格式有点像C语言,替换变量
也是str自带函数,可以多用多用
它通过{}和:来代替%。
通过位置
In [48]: print '{0} is a {1}'.format('cat','animal') cat is a animal
In [49]: print '{1} is a {0}'.format('cat','animal') animal is a cat
解释:{}的内容,会被format()中的参数代替,可以在'{}'里填写上数字来指定format()中的位置,但如果'{}'里面是key参数其中的内容会被format()中的value值代替
通过关键字参数
In [50]: print '{name} is a {age}'.format(name='andy', age=20) andy is a 20
通过下标
In [56]: l = ['andy', 'good'] In [60]: '{0[0]} {0[1]} {0[0]}'.format(l) Out[60]: 'andy good andy'
格式限定符
它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如
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一起使用
In [44]: '{:.2f}'.format(321.33345) Out[44]: '321.33'
其中.2表示长度为2的精度,f表示float类型。
其他类型
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
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'
用,号还能用来做金额的千位分隔符。
In [47]: '{:,}'.format(1234567890) Out[47]: '1,234,567,890'