1. 程式人生 > 其它 >Python格式化字串的兩種方式

Python格式化字串的兩種方式

技術標籤:程式語言python

我們經常會輸出類似 '親愛的 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%'