28-python 中格式对齐之中文格式对齐问题

一般的可以按这个搞,但是中文就会有问题:

python基础_格式化输出(%用法和format用法)

对于  

print('1234567890' * 10)
print('%10s' % '今天好')
print('%10s' % 'jjj')

对不齐的问题,主要是中文和英文、数字等英文输入的字符,所占的大小不同,显然一个中文字符占英文字符的两个大小的位置,

然而,%10s  的补齐规则是,先测下输入字符的长度,再和10作比较,然后小了就在前面(右对齐)不上英文空格, 但是  对于'今天好' 和‘jjj’用

len()测长度都是 3 ,所以都补上相同的7个空格,然而中文本身就比字母占位多一倍,所以就会对不齐了。

所以如果要实现中文对齐,需要自己写个函数统计其中中文字符个数,自己添加正确的空格数来补齐。

原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9870219.html