格式化
舉個(gè)常見(jiàn)的例子,我們經(jīng)常會(huì)收到電信運(yùn)營(yíng)商的短信如親愛(ài)的xxx 你好!你xx月共消費(fèi)xx元話費(fèi),當(dāng)前余額是xx元之類(lèi)的字符串,而xxx的內(nèi)容都是根據(jù)變量變化的,所以需要一種簡(jiǎn)便的格式化字符串的方式,使用同一套短信模板,發(fā)送給不同的用戶。
在Python中,采用的格式化方式和C語(yǔ)言是一致的,用%實(shí)現(xiàn),舉例如下:
name = '李小龍'
yue = '9'
xiao = '88'
yu = '20'
print('親愛(ài)的%s 你好!你%s月共消費(fèi)%s元話費(fèi),當(dāng)前余額是%s元' %(name,yue,xiao,yu))
你可能猜到了,%運(yùn)算符就是用來(lái)格式化字符串的。在字符串內(nèi)部,%s表示用字符串替換到該位置, %d表示用整數(shù)替換該位置,有幾個(gè) %占位符,后面就跟幾個(gè)變量或者值,順序要對(duì)應(yīng)好。如果%只有一個(gè)要替換的值,可以省略%(name,yue,xiao,yu)的括號(hào)。
IDE效果如下

常見(jiàn)的占位符有:
| 占位符 | 對(duì)應(yīng)替換的數(shù)據(jù)類(lèi)型 |
|---|---|
| %d | 整數(shù) |
| %f | 浮點(diǎn)數(shù) |
| %s | 字符串 |
| %x | 十六進(jìn)制整數(shù) |
我上面的示例其實(shí)偷懶了,金額之類(lèi)的格式化占位符應(yīng)該是浮點(diǎn)數(shù)%f的,因?yàn)閼?我賦值變量時(shí)所有的值都加了''單引號(hào),強(qiáng)行將金額轉(zhuǎn)為字符串的數(shù)據(jù)類(lèi)型,所以示例中占位符都用了%s。
其中,格式化整數(shù)和浮點(diǎn)數(shù)還可以指定是否補(bǔ)0和整數(shù)與小數(shù)的位數(shù):
print('%05d--%5d' %(3, 1)) #結(jié)果為3的前面會(huì)多5個(gè)0 (000003),1的前面則多出5個(gè)空格( 1)
print('%.2f' %3.1415926) #保留小數(shù)點(diǎn)后2位(3.14)