【Python】Python中中文的字串格式化對齊
阿新 • • 發佈:2019-02-19
中文字元在字元佔用上相當於兩個英文字元,但是字型設計上,一般一箇中文字元的寬度不會等於兩個英文字元的寬度,所以打印出來的效果有偏差。
如:
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 count print('----通過函式計算長度格式化:----') for x in range(len(c)): number = chinese(c[x]) newStr = '{0:{wd}}'.format(c[x],wd=20-number) print('|%s|' % newStr)