填充與對齊
填充常跟對齊一起使用
^、<、>分別是居中、左對齊、右對齊,后面帶寬度
:號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充
例如:
ulist.append([1,"清華大學","10" ]) ulist.append([2,"中國科學技術大學","10"]) ulist.append([3,"復旦大學","10"]) ulist Out[45]: [[1, '清華大學', '10'], [2, '中國科學技術大學', '10'], [3, '復旦大學', '10']] for ul in ulist: print("{:^6}\t{:^10}\t{:^6}".format(ul[0],ul[1],ul[2])) 1 清華大學 10 2 中國科學技術大學 10 3 復旦大學 10
其中print語句采用format格式化輸出{:^6}表示居中顯示,占6個字符寬度
但是會發現下面輸出語句中並沒有對齊,原因是當中文字符串長度沒有達到指定字符串長度時,默認會采用西文空格代替,而西文空格和中文空格長度不同,故導致中英文混輸時不對齊了。
解決方案如下:
采用chr(12288)表示中文空格
代碼修改如下:
for ul in ulist: print("{0:^6}\t{1:{3}^10}\t{2:^6}".format(ul[0],ul[1],ul[2],chr(12288))) 1 清華大學 10 2 中國科學技術大學 10 3 復旦大學 10
此時可以發現代碼輸出已經對齊了。
這里說明一個問題{1:{3}^10},這個里面1和3對應format里面的順序)(1為ul[1],3為chr(12288),{3}為填充中文空格,10為寬度),而“:” 后面的內容表示填充內容,當長度不夠時將自動填充
轉自:滄海漂游_