在許多編程語言中都包含有格式化字符串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內(nèi)置有對字符串進行格式化的操作%兴革。
-
模板
格式化字符串時箍铭,Python使用一個字符串作為模板泊柬。模板中有格式符,這些格式符為真實值預(yù)留位置诈火,并說明真實數(shù)值應(yīng)該呈現(xiàn)的格式兽赁。Python用一個tuple將多個值傳遞給模板状答,每個值對應(yīng)一個格式符。
比如下面的例子:
print("I'm %s. I'm %d year old" % ('Vamei', 99))
上面的例子中刀崖,
"I'm %s. I'm %d year old"
為我們的模板惊科。%s
為第一個格式符,表示一個字符串亮钦。%d
為第二個格式符馆截,表示一個整數(shù)。('Vamei', 99)
的兩個元素'Vamei'和99為替換%s和%d的真實值蜂莉。 在模板和tuple之間蜡娶,有一個%號分隔,它代表了格式化操作映穗。
整個"I'm %s. I'm %d year old" % ('Vamei', 99)
實際上構(gòu)成一個字符串表達式窖张。我們可以像一個正常的字符串那樣,將它賦值給某個變量蚁滋。比如:
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})
可以看到,我們對兩個格式符進行了命名辕录。命名使用()括起來睦霎。每個命名對應(yīng)詞典的一個key。
-
格式符
格式符為真實值預(yù)留位置踏拜,并控制顯示的格式碎赢。格式符可以包含有一個類型碼,用以控制顯示的類型速梗,如下:
%s
字符串 (采用str()的顯示)
%r
字符串 (采用repr()的顯示)
%c
單個字符
%b
二進制整數(shù)
%d
十進制整數(shù)
%i
十進制整數(shù)
%o
八進制整數(shù)
%x
十六進制整數(shù)
%e
指數(shù) (基底寫為e)
%E
指數(shù) (基底寫為E)
%f
浮點數(shù)
%F
浮點數(shù)肮塞,與上相同
%g
指數(shù)(e)?或浮點數(shù) (根據(jù)顯示長度)
%G
指數(shù)(E)或浮點數(shù) (根據(jù)顯示長度)
%%
字符"%"
可以用如下的方式,對格式進行進一步的控制:
%[(name)][flags][width].[precision]typecode
(name)
為命名
flags
可以有+,-,' '或0;
- +表示右對齊姻锁。
- -表示左對齊枕赵。
- ' '為一個空格,表示在正數(shù)的左側(cè)填充一個空格位隶,從而與負數(shù)對齊拷窜。
- 0表示使用0填充。
width
表示顯示寬度
precision
表示小數(shù)點后精度
比如:
print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)
上面的width
,precision
為兩個整數(shù)涧黄。我們可以利用**篮昧,來動態(tài)代入這兩個量。比如:
print("%.*f" % (4, 1.2))
Python實際上用4來替換*笋妥。所以實際的模板為"%.4f"
懊昨。
-
總結(jié)
Python中內(nèi)置的%
操作符可用于格式化字符串操作,控制字符串的呈現(xiàn)格式春宣。Python中還有其他的格式化字符串的方式酵颁,但%操作符的使用是最方便的嫉你。
@晴--2016-09-30 08:43:00