1. 程式人生 > >【Python】Python中中文的字串格式化對齊

【Python】Python中中文的字串格式化對齊

中文字元在字元佔用上相當於兩個英文字元,但是字型設計上,一般一箇中文字元的寬度不會等於兩個英文字元的寬度,所以打印出來的效果有偏差。

如:

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)