采用.format打印輸出時,可以定義輸出字符串的輸出寬度,在 ':' 后傳入一個整數, 可以保證該域至少有這么多的寬度。 用於美化表格時很有用。
>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} >>> for name, number in table.items(): ... print('{0:10} ==> {1:10d}'.format(name, number)) ... Runoob ==> 2 Taobao ==> 3 Google ==> 1
但是在打印多組中文的時候,不是每組中文的字符串寬度都一樣,當中文字符寬度不夠的時候,程序采用西文空格填充,中西文空格寬度不一樣,就會導致輸出文本不整齊
如下,打印中國高校排名
tplt = "{0:^10}\t{1:^10}\t{2:^10}" print(tplt.format("學校名稱", "位置", "分數")) for i in range(num): u = ulist[i] print(tplt.format(u[0], u[1], u[2]))
把字符串寬度都定義為10,但是中文本身的寬度都不到10所以會填充西文空格,就會導致字符的實際寬度長短不一
解決方法:寬度不夠時采用中文空格填充
中文空格的編碼為chr(12288)
tplt = "{0:{3}^10}\t{1:{3}^10}\t{2:^10}" print(tplt.format("學校名稱", "位置", "分數", chr(12288))) for i in range(num): u = ulist[i] print(tplt.format(u[0], u[1], u[2], chr(12288)))