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)))

# 大学         北京大学   
# 大学       北京航天航空大学 

 这样就可以很好的解决中文字符的对齐问题。

 

posted @ 2017-07-29 22:50  hyserendipity  阅读(315)  评论(0编辑  收藏  举报