Python的format格式化輸出

2021-09-19 13:55:29 字數 1361 閱讀 9465

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: , second one: ".format(47,11) 

'first argument: 47, second one: 11'

>>> "second argument: , first one: ".format(47,11) 

'second argument: 11, first one: 47'12

34大括號裡面的數字就代表了第幾個引數,python是從0開始起算的。位置後冒號之後的引數,則分別代表了每個格式化輸出部分的格式。如, 則分別代表佔5位的整數和佔8位的保留小數點2位的浮點數。 

還有些選項引數可以選擇,加在」:」後。 

『<』表示左對齊,『>』表示右對齊,『0』表示空位用0補齊,『,』表示用』,』作為千位分隔符,『^』能夠使文字在所處位置居中。 

除了這些給定的選項,我們也可以使用自己給定的字元來補齊空位。 

下面給出乙個例子:

tplt = "\t^10}\t"   # ^10} 1表示位置,表示用第3個引數來填充,^表示居中,10表示佔10個位置

print(tplt.format("排名","學校名稱","總分",'*'))12

執行後得到 

排名 ***學校名稱*** 總分 

tplt中的代表給的最後乙個引數』*』,這樣第2個位置的「學校名稱」就會居中,空白位置用』*』代替。

小彩蛋由於中文和英文本元佔位大小不一樣的問題,往往會導致格式化輸出的中文字元不齊。比如在嵩天老師的python網路爬蟲中的這個例子,學校名稱這個位置非常難看。 

我們可以用中文空白字元chr(12288)來替代就像我們之前用』*』一樣。這樣,就能很好的解決中文對齊的問題。 

Python強大的格式化format

自python2.6開始,新增了一種格式化字串的函式str.format 可謂威力十足。那麼,他跟之前的 型格式化字串相比,有什麼優越的存在呢?讓我們來揭開它羞答答的面紗。語法 它通過 和 來代替 對映 示例 通過位置 in 1 format kzc 18 out 1 kzc,18 in 2 for...

Python強大的格式化format

format kzc 18 kzc,18 format kzc 18 kzc,18 format kzc 18 18,kzc,18 format age 18,name kzc kzc,18 通過物件屬性 class person def init self,name,age self.name,s...

python的格式化輸出format

1 設定對齊方式 預設 左對齊 右對齊 中間對齊 只用於數字 在小數點後進行補齊 print is format 123 abcd 左對齊 print is format 123 abcd 右對齊 print is format 123 abcd 中間對齊 右對齊保留兩位小數 print is fo...