天天看點

如何輸出格式化的字元串(學習筆記四)

如何輸出格式化的字元串(學習筆記四)

我們經常會輸出類似 '親愛的xxx你好!你xx月的話費是xx,餘額是xx' 之類的字元串,而xxx的内容都是根據變量變化的,是以,需要一種簡便的格式化字元串的方式。

在Python中,采用的格式化方式和C語言是一緻的,用 % 實作,舉例如下:

>>> 'Hello, %s' % ('world')

'Hello, world'

截圖如下:

<a href="https://s4.51cto.com/wyfs02/M00/94/C7/wKiom1kNpTewWUUdAAAYu6_S-dA362.png" target="_blank"></a>

注:

(1)紅線上的百分号,兩邊可有空格也可無;

(2)對于隻有一個變量的情況,我們可以将'world'外的括号省略,則上面代碼可以如下寫:

&gt;&gt;&gt; 'Hello, %s' % 'world'

那麼當出現兩個變量時,我們應該怎麼表示呢?如下:

&gt;&gt;&gt; 'Hi, %s, you have $%d.' % ('wtf', 100)

'Hi, wtf, you have $100.'

常見的占位符有:

%d 整數

%f 浮點數

%s 字元串

%x 十六進制整數

現在簡單介紹下,格式化整數和浮點數還可以指定是否補0和整數與小數的位數:

(1)格式化整數,可以指定整數的位置,如下:

&gt;&gt;&gt; '%d-%d'%(3,1)

'3-1'

&gt;&gt;&gt; '%1d-%d'%(3,1)

&gt;&gt;&gt; '%2d-%d'%(3,1)

' 3-1'

&gt;&gt;&gt; '%3d-%d'%(3,1)

'  3-1'

<a href="https://s4.51cto.com/wyfs02/M02/94/C6/wKioL1kNqhSwiHApAAAUYMyOHPA635.png" target="_blank"></a>

(2)格式化整數,可以指定是否補零,如下:

&gt;&gt;&gt; '%d-%01d'%(3,1)

&gt;&gt;&gt; '%d-%02d'%(3,1)

'3-01'

&gt;&gt;&gt; '%d-%03d'%(3,1)

'3-001'

<a href="https://s4.51cto.com/wyfs02/M02/94/C6/wKioL1kNqmLCGNV-AAAPvOY4Ilw866.png" target="_blank"></a>

(3)格式化整數指定整數位置和補零,如下:

&gt;&gt;&gt; '%2d-%02d' % (3, 1)

' 3-01'

(4)格式化浮點數

&gt;&gt;&gt; '%.2f' % 3.1415926

'3.14'

擴充

(1)如果你不太确定應該用什麼, %s 永遠起作用,它會把任何資料類型轉換為字元串:

&gt;&gt;&gt; 'Age: %s. Gender: %s' % (25, True)

'Age: 25. Gender: True'

(2)對于Unicode字元串,用法完全一樣,但最好確定替換的字元串也是Unicode字元串:

&gt;&gt;&gt; u'Hi, %s' % u'Michael'

u'Hi, Michael'

(3)有些時候,字元串裡面的 % 是一個普通字元怎麼辦?這個時候就需要轉義,用 %% 來表示一個 % :

&gt;&gt;&gt; 'growth rate: %d %%' % 7

'growth rate: 7 %'

     本文轉自品鑒初心51CTO部落格,原文連結:http://blog.51cto.com/wutengfei/1922734,如需轉載請自行聯系原作者