首頁  >  文章  >  後端開發  >  python中的格式化輸出用法總結

python中的格式化輸出用法總結

黄舟
黄舟原創
2016-12-28 17:59:401511瀏覽

本文實例總結了python中的格式化輸出用法。分享給大家參考,具體如下:

Python一共有兩種格式化輸出語法。

另一種是類似C語言printf的方式,稱為Formatting Expression

>>> '%s %d-%d' % ('hello', 7, 1)  
'hello 7-1'

另一種是類似C#的方式,稱為String Formatting Method Calls

>>> '{0} {1}:{2}'.format('hello', '1', '7')  
'hello 1:7'

第一種方式可以指定浮點數的精確度,例如

>>> '%.3f' % 1.234567869  
'1.235'

運行時動態指定浮點數的精確度

但是當程式碼在運作中如何動態地透過參數來指定浮點數的精確度呢?

python的神奇之處在於它又提供了一個非常方便的語法。只需要在 typecode(這裡是f)之前加一個 *,浮點數的精確度就用它前面的數字來指定。

>>> for i in range(5):  
... '%.*f' % (i, 1.234234234234234)  
...  
'1'  
'1.2'  
'1.23'  
'1.234'  
'1.2342'

透過輸出結果可以看出,精確度都是在運行時動態指定,這樣就省去了格式化字串的拼湊。

使用 String Formatting Method Calls 可以更簡潔地完成功能。

>>> for i in range(5):  
...  '{0:.{1}f}'.format(1 / 3.0, i)  
...  
'0'  
'0.3'  
'0.33'  
'0.333'  
'0.3333'

實作一個簡單的模板工具

Django提供的模板語言,可以讓我們透過一個dict(字典)把python變數綁定的html檔中,其實利用python的格式化輸出我們也可以只做一個文字替換功能。

>>> replay = """ 
... Hello World Cup... 
... Germany vs Brazil 
... %(germany)d : %(brazil)d"""  
>>> print(replay % {'germany': 7, 'brazil': 1})  
Hello World Cup...  
Germany vs Brazil  
7 : 1

還可以這樣玩

>>> germany = 7  
>>> brazil = 1  
>>> '%(germany)d : %(brazil)d' % vars()  
'7 : 1'

在格式化字串中存取物件屬性和字典鍵值

>>> 'My {1[kind]} runs {0.platform}'.format(sys, {'kind': 'pc'})  
'My pc runs linux'  
>>> 'My {map[kind]} runs {sys.platform}'.format(sys=sys, map={'kind': 'pc'})  
'My pc runs linux'

在格式化字串中透過下標(正整數)存取list元素

>>> somelist = list('SPAM')  
>>> 'first={0[0]}, third={0[2]}'.format(somelist)  
'first=S, third=A'  
>>> 'first={0}, last={1}'.format(somelist[1], somelist[-1])  
'first=P, last=M'  
>>> parts = somelist[0], somelist[-1], somelist[1:-1]  
>>> 'first={0}, last={1}, middle={2}'.format(*parts)  
"first=S, last=M, middle=['P', 'A']"  
>>>

 以上就是python中的格式化輸出用法總結的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn