【Python】Python中中文的字符串格式化对齐

来源:互联网 时间:2016-01-14

中文字符在字符占用上相当于两个英文字符,但是字体设计上,一般一个中文字符的宽度不会等于两个英文字符的宽度,所以打印出来的效果有偏差。

如:

c = [ '决', '决决', '决决决', '决决决决', '决决决决决', '决决决决决决', '决决决决决决决']print('----正常字符串格式化:----')for x in range(len(c)): print('|%20s|' % c[x])
打印结果如下图所示:



但是等宽字符一个中文字体的宽度刚好等于两个英文字符宽度。我们可以根据这个,自动计算字符串的长度。

def chinese(data): count = 0 for s in data: if ord(s) > 127: count += 1 return countprint('----通过函数计算长度格式化:----')for x in range(len(c)): number = chinese(c[x]) newStr = '{0:{wd}}'.format(c[x],wd=20-number) print('|%s|' % newStr)


GitHub:https://github.com/Jueee/04-LiaoXueFeng/blob/master/81-Chinese.py


相关阅读:
Top