Python字符串格式化
在許多編程語(yǔ)言中都包含有格式化字符串的功能,比如C和Fortran語(yǔ)言中的格式化輸入輸出。Python中內(nèi)置有對(duì)字符串進(jìn)行格式化的操作%。
模板
格式化字符串時(shí),Python使用一個(gè)字符串作為模板。模板中有格式符,這些格式符為真實(shí)值預(yù)留位置,并說(shuō)明真實(shí)數(shù)值應(yīng)該呈現(xiàn)的格式。Python用一個(gè)tuple將多個(gè)值傳遞給模板,每個(gè)值對(duì)應(yīng)一個(gè)格式符。
比如下面的例子:
print("I'm %s. I'm %d year old" % ('Vamei', 99))
上面的例子中,
"I'm %s. I'm %d year old" 為我們的模板。%s為第一個(gè)格式符,表示一個(gè)字符串。%d為第二個(gè)格式符,表示一個(gè)整數(shù)。('Vamei', 99)的兩個(gè)元素'Vamei'和99為替換%s和%d的真實(shí)值。
在模板和tuple之間,有一個(gè)%號(hào)分隔,它代表了格式化操作。
整個(gè)"I'm %s. I'm %d year old" % ('Vamei', 99) 實(shí)際上構(gòu)成一個(gè)字符串表達(dá)式。我們可以像一個(gè)正常的字符串那樣,將它賦值給某個(gè)變量。比如:
a = "I'm %s. I'm %d year old" % ('Vamei', 99)
print(a)
我們還可以用詞典來(lái)傳遞真實(shí)值。如下:
print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})
可以看到,我們對(duì)兩個(gè)格式符進(jìn)行了命名。命名使用()括起來(lái)。每個(gè)命名對(duì)應(yīng)詞典的一個(gè)key。
格式符
格式符為真實(shí)值預(yù)留位置,并控制顯示的格式。格式符可以包含有一個(gè)類型碼,用以控制顯示的類型,如下:
%s 字符串 (采用str()的顯示)
%r 字符串 (采用repr()的顯示)
%c 單個(gè)字符
%b 二進(jìn)制整數(shù)
%d 十進(jìn)制整數(shù)
%i 十進(jìn)制整數(shù)
%o 八進(jìn)制整數(shù)
%x 十六進(jìn)制整數(shù)
%e 指數(shù) (基底寫為e)
%E 指數(shù) (基底寫為E)
%f 浮點(diǎn)數(shù)
%F 浮點(diǎn)數(shù),與上相同
%g 指數(shù)(e)或浮點(diǎn)數(shù) (根據(jù)顯示長(zhǎng)度)
%G 指數(shù)(E)或浮點(diǎn)數(shù) (根據(jù)顯示長(zhǎng)度)
%% 字符"%"
可以用如下的方式,對(duì)格式進(jìn)行進(jìn)一步的控制:
%[(name)][flags][width].[precision]typecode
(name)為命名
flags可以有+,-,' '或0。+表示右對(duì)齊。-表示左對(duì)齊。' '為一個(gè)空格,表示在正數(shù)的左側(cè)填充一個(gè)空格,從而與負(fù)數(shù)對(duì)齊。0表示使用0填充。
width表示顯示寬度
precision表示小數(shù)點(diǎn)后精度
比如:
print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)
上面的width, precision為兩個(gè)整數(shù)。我們可以利用*,來(lái)動(dòng)態(tài)代入這兩個(gè)量。比如:
print("%.*f" % (4, 1.2))
Python實(shí)際上用4來(lái)替換*。所以實(shí)際的模板為"%.4f"。
例子:
In [1]: "%(name)s is %(age)s" % {"name":"bob", "age": 12}
Out[1]: 'bob is 12'
In [2]: "%s is %s" % ("bob", "13")
Out[2]: 'bob is 13'
In [6]: "{0} is {1}".format("bob", "14")
Out[6]: 'bob is 14'
In [7]: "{name} is {age}".format(name="bob",age="15")
Out[7]: 'bob is 15'
總結(jié)
Python中內(nèi)置的%操作符可用于格式化字符串操作,控制字符串的呈現(xiàn)格式。Python中還有其他的格式化字符串的方式,但%操作符的使用是最方便的。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
細(xì)說(shuō)NumPy數(shù)組的四種乘法的使用
這篇文章主要介紹了細(xì)說(shuō)NumPy數(shù)組的四種乘法的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Django ORM框架的定時(shí)任務(wù)如何使用詳解
這篇文章主要給大家介紹了關(guān)于Django ORM框架的定時(shí)任務(wù)如何使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
Python+Pygame實(shí)現(xiàn)海洋之神大冒險(xiǎn)游戲
這篇文章主要介紹了如何利用Python+Pygame自制一個(gè)海洋之神大冒險(xiǎn)游戲。規(guī)則是在海里收集魚骨頭,有些魚骨頭可以轉(zhuǎn)化為武器,用來(lái)攻擊敵人,感興趣的可以了解一下2022-08-08
基于Python編寫簡(jiǎn)易文字語(yǔ)音轉(zhuǎn)換器
這篇文章主要為大家介紹了如何利用Python編寫一個(gè)簡(jiǎn)易文字語(yǔ)音轉(zhuǎn)換器,并打包成exe。文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起嘗試一下2022-03-03
像線程一樣管理進(jìn)程的Python multiprocessing庫(kù)
multiprocessing庫(kù)是基于threading API,它可以把工作劃分為多個(gè)進(jìn)程.有些情況下,multiprocessing可以作為臨時(shí)替換取代threading來(lái)利用多個(gè)CPU內(nèi)核,相應(yīng)地避免Python全局解釋器鎖所帶來(lái)的計(jì)算瓶頸.本文詳細(xì)介紹了Python multiprocessing庫(kù),需要的朋友可以參考下2021-05-05
pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用
這篇文章主要介紹了pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用,同時(shí)也支持Intellij IDEA激活碼,PHPStorm激活碼大家可以放心使用需要的朋友可以參考下2020-11-11
python統(tǒng)計(jì)文本字符串里單詞出現(xiàn)頻率的方法
這篇文章主要介紹了python統(tǒng)計(jì)文本字符串里單詞出現(xiàn)頻率的方法,涉及Python字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-05-05

