Python的format格式化輸出

Python的格式化輸出

方法一:傳統方法

與C語言類似,可以採用“%”作爲格式化輸出的標記。如: 
print("The first number: %5d, the second number: %8.2f" % (123, 456.789)) 
輸出的結果爲: 
The first number: 123, the second number: 456.79 
不用做更多解釋,分爲3個部分,格式化的字符串、分隔符和數值元組。

方法二:format方法

與第一種方法相比,新的Python版本更傾向於使用format方法。它的使用也更加靈活,下面我們簡單介紹一下。 
它的基本使用格式如下: 
template.format(p0, p1, ..., k0=v0, k1=v1, ...) 
template是一個字符串,其中包括需要格式化輸出的部分,這些部分各用大括號括起來{}。format後面的參數p表示第幾個位置的需要格式化輸出的變量。 
舉個例子:

>>> "First argument: {0}, second one: {1}".format(47,11) 
'First argument: 47, second one: 11'
>>> "Second argument: {1}, first one: {0}".format(47,11) 
'Second argument: 11, first one: 47'
1
2
3
4
大括號裏面的數字就代表了第幾個參數,python是從0開始起算的。位置後冒號之後的參數,則分別代表了每個格式化輸出部分的格式。如{0:5d}, {1:8.2f}則分別代表佔5位的整數和佔8位的保留小數點2位的浮點數。 
還有些選項參數可以選擇,加在”:”後。 
‘<’表示左對齊,‘>’表示右對齊,‘0’表示空位用0補齊,‘,’表示用’,’作爲千位分隔符,‘^’能夠使文本在所處位置居中。 
除了這些給定的選項,我們也可以使用自己給定的字符來補齊空位。 
下面給出一個例子:

tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"   # {1:{3}^10} 1表示位置,{3}表示用第3個參數來填充,^表示居中,10表示佔10個位置
print(tplt.format("排名","學校名稱","總分",'*'))
1
2
運行後得到 
排名 ***學校名稱*** 總分 
tplt中的{3}代表給的最後一個參數’*’,這樣第2個位置的“學校名稱”就會居中,空白位置用’*’代替。

小彩蛋

由於中文和英文字符佔位大小不一樣的問題,往往會導致格式化輸出的中文字符不齊。比如在嵩天老師的python網絡爬蟲中的這個例子,學校名稱這個位置非常難看。 
 
我們可以用中文空白字符chr(12288)來替代就像我們之前用’*’一樣。這樣,就能很好的解決中文對齊的問題。 

--------------------- 
作者:HardCookies 
來源:CSDN 
原文:https://blog.csdn.net/james_616/article/details/79004482 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章