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

来源:互联网 发布:s7-300plc编程实例 编辑:程序博客网 时间:2024/04/29 18: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


0 0
原创粉丝点击