python的str.format方法


format方法被用於字符串的格式化輸出。

 print('{0}+{1}={2}'.format(1,2,1+2))   #in
1+2=3   #out

可見字符串中大括號內的數字分別對應着format的幾個參數。

 

若省略數字:

print('{}+{}={}'.format(1,2,1+2))   #in

可以得到同樣的輸出結果。但是替換順序默認按照[0],[1],[2]...進行。

 

若替換{0}和{1}:

print('{1}+{0}={2}'.format(1,2,1+2))   #in
2+1=3   #out

 

輸出字符串:

print('{0} am {1}'.format('i','alex'))  
i am alex   #out

 

輸出參數的值:

1 length = 4
2 name = 'alex'
3 print('the length of {0} is {1}'.format(name,length))
the length of alex is 4

 

精度控制:

print('{0:.3}'.format(1/3))
0.333

 

寬度控制:

print('{0:7}{1:7}'.format('use','python'))
use    python 

 

精寬度控制(寬度內居左):

print('{0:<7.3}..'.format(1/3))   
0.333  ..

其實精寬度控制很類似於C中的printf函數。

同理'>'為居右,'^'為居中。符號很形象。

 

補全:

 1 #!/usr/bin/python
 2 #python3.6
 3 print('{0:0>3}'.format(1)) #居右,左邊用0補全
 4 print('{0:{1}>3}'.format(1,0))  #也可以這么寫
 5 #當輸出中文使用空格補全的時候,系統會自動調用英文空格,這可能會造成不對齊
 6 #for example
 7 blog = {'1':'中國石油大學','2':'浙江大學','3':'南京航空航天大學'}  8 print('不對齊:')  9 print('{0:^4}\t\t{1:^8}'.format('序號','名稱')) 10 for no,name in blog.items(): #字典的items()方法返回一個鍵值對,分別賦值給no和name
11     print('{0:^4}\t\t{1:^8}'.format(no,name)) 12 print('\n對齊:') 13 print('{0:^4}\t\t{1:{2}^8}'.format('序號','名稱',chr(12288))) #chr(12288)為UTF-8中的中文空格
14 for no,name in blog.items(): 15     print('{0:^4}\t\t{1:{2}^8}'.format(no,name,chr(12288)))

 

#out
001
001 不對齊: 序號 名稱 1 中國石油大學 2 浙江大學 3 南京航空航天大學 對齊: 序號    名稱    1  中國石油大學  2   浙江大學   3              南京航空航天大學

 

 

 


免責聲明!

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



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