Python格式化字串的兩種方式
阿新 • • 發佈:2020-12-09
我們經常會輸出類似 '親愛的 xxx 你好!你 xx 月的話費是 xx,餘額是 xx ’ 之類的字串,而 xxx 的內容都是根據變數變化的,所以,需要一種簡便的格式化字串的方式。
一、%
在Python中,採用的格式化方式和C語言是一致的,用%實現,舉例如下:
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
%
運算子就是用來格式化字串的。在字串內部,%s
%d
表示用整數替換,有幾個 %?
佔位符,後面就跟幾個變數或者值,順序要對應好。如果只有一個 %?
,括號可以省略。
常見的佔位符有:
其中,格式化整數和浮點數還可以指定是否補 0 和整數與小數的位數:
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
>>>print('%1d-%02d' % (3, 1))
3-01
>>>print('%2d-%02d' % (3, 1))
3-01
>>>print('%.3f' % 3.1415926)
3.142
>>>print('%.2f' % 3.1415926)
3.14
如果你不太確定應該用什麼,%s
永遠起作用,它會把任何資料型別轉換為字串:
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
有些時候,字串裡面的%
是一個普通字元怎麼辦?這個時候就需要轉義,用%%
來表示一個%
:
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
二、format()
另一種格式化字串的方法是使用字串的format()
{0}、{1}……
,不過這種方式寫起來比%要麻煩得多:
>>> 'Hello, {0}, 成績提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成績提升了 17.1%'