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
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!