python之中英文輸出對齊


填充與對齊

填充常跟對齊一起使用
^、<、>分別是居中、左對齊、右對齊,后面帶寬度
:號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充

 

例如:

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為寬度),而“:” 后面的內容表示填充內容,當長度不夠時將自動填充

 

轉自:滄海漂游_

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM