Python 格式化输出
2017-07-29 22:03:07
一、使用格式符%进行格式控制
%[(name)][flags][width].[precision]typecode
- (name):命名
- flags:可以有+,-,' '或0。+表示右对齐。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充
- wideth : 表示显示宽度,占位个数
- precision : 表示小数点后精度
- typecode : 格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
import math print('hello world%s %d %10.3f date:%s' %('!!!',2017,math.pi,'7/29')) #hello world!!! 2017 3.142 date:7/29
import math print('hello world%s %d %-10.3f date:%s' %('!!!',2017,math.pi,'7/29')) #默认为右对齐,添加-使之成为左对齐,发现空格集中在了右侧 #hello world!!! 2017 3.142 date:7/29
二、使用槽进行格式化输出
str.format()
print('{:^5}\t{:^10}'.format('大学','北京大学')) print('{:^5}\t{:^10}'.format('大学','北京航天航空大学')) # 大学 北京大学 # 大学 北京航天航空大学
中文字符的居中对齐并不十分齐整的原因是当中文字符宽度不够时,采用西文字符填充;中西文字符占用宽度不同。
采用中文字符的空格填充 chr(12288)
print('{0:^5}\t{1:{2}^10}'.format('大学','北京大学',chr(12288))) print('{0:^5}\t{1:{2}^10}'.format('大学','北京航天航空大学',chr(12288))) # 大学 北京大学 # 大学 北京航天航空大学
这样就可以很好的解决中文字符的对齐问题。