字符串格式化輸出


出處:http://www.cnblogs.com/vamei 作者:vamei

格式化字符串時,Python使用一個字符串作為模板 。模板中有格式符 ,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。Python用一個tuple將多個值傳遞給模板,每個值對應一個格式符。

簡介

比如下面的例子:

print("I'm %s. I'm %d year old" % ('Vamei', 99))

上面的例子中,

"I'm %s. I'm %d year old" 為我們的模板。

%s 為第一個格式符,表示一個字符串。
%d 為第二個格式符,表示一個整數。
('Vamei', 99) 的兩個元素'Vamei' 和99 為替換%s 和%d 的真實值。

在模板和tuple之間,有一個% 號分隔,它代表了格式化操作 。

整個"I'm %s. I'm %d year old" % ('Vamei', 99) 實際上構成一個字符串表達式。我們可以像一個正常的字符串那樣,將它賦值 給某個變量。比如:

a = "I'm %s. I'm %d year old"% ('Vamei', 99)
print(a)

我們還可以用詞典來傳遞真實值。如下:

print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})

可以看到,我們對兩個格式符進行了命名 。命名使用() 括起來。每個命名對應詞典的一個key。

格式符

格式符為真實值預留位置,並控制顯示的格式。格式符可以包含有一個類型碼 ,用以控制顯示的類型,如下:

%s    字符串 (采用str()的顯示)

%r    字符串 (采用repr()的顯示)

%c    單個字符

%b    二進制整數

%d    十進制整數

%i    十進制整數

%o    八進制整數

%x    十六進制整數

%e    指數 (基底寫為e)

%E    指數 (基底寫為E)

%f    浮點數

%F    浮點數,與上相同

%g    指數(e)或浮點數 (根據顯示長度)

%G    指數(E)或浮點數 (根據顯示長度)

%%    字符"%"

對格式進行進一步的控制:

%[(name)][flags][width]**.**[precision]typecode

(name) 為命名

flags 可以有+,-,' '或0。+表示右對齊 。-表示左對齊 。' '為一個空格,表示在正數的左側填充一 個空格 ,從而與負數對齊。0表示使用0填充 。

width 表示顯示寬度
precision 表示小數點后精度

比如:

 >>> print("%+10x"% 10)
        +a
>>>
>>> print("%04d"% 5)
0005
>>>
>>> print("%6.3f"% 2.3)
 2.300

上面的width, precision為兩個整數。我們可以利用* ,來動態代入這兩個量。比如:

>>> print("%.*f"% (4, 1.2))
1.2000

Python實際上用4來替換*。所以實際的模板為"%.4f"。

Python format 格式化函數

Python format 格式化函數

總結

Python中內置的% 操作符可用於格式化字符串操作,控制字符串的呈現格式。Python中還有其他的格式化字符串的方式,但%操作符的使用是最方便的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM