初學(xué)python,看來(lái)零零碎碎的格式化文本的方法,總結(jié)一下python中格式化文本的方法。使用不當(dāng)?shù)牡貧g迎指出謝謝。
1、首先看使用%格式化文本
常見(jiàn)的占位符:
常見(jiàn)的占位符有:%d 整數(shù)%f 浮點(diǎn)數(shù)%s 字符串%x 十六進(jìn)制整數(shù)
使用方法:
>>> 'Hello, %s' % 'world''Hello, world'>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)'Hi, Michael, you have $1000000.'使用的時(shí)候不知道寫(xiě)什么的地方直接使用 %s 進(jìn)行代替,語(yǔ)句的末尾加上 %() 括號(hào)里面直接填寫(xiě)內(nèi)容即可(字符串加上引號(hào),中間用“,”分割),如果只有一個(gè)%?,括號(hào)可以省略。
高級(jí)一點(diǎn)的用法:
格式化整數(shù)指定是否補(bǔ)零:
首先看代碼:
>>> '%d-%d' % (3, 23)'3-23'>>> '%2d-%2d' % (3, 23)' 3-23'>>> '%3d-%3d' % (3, 23)' 3- 23'>>> '%4d-%4d' % (3, 23)' 3- 23'>>> '%01d-%01d' % (3, 23)'3-23'>>> '%02d-%02d' % (3, 23)'03-23'>>> '%03d-%03d' % (3, 23)'003-023'>>> '%04d-%04d' % (3, 23)'0003-0023'>>>
可以看得出來(lái),d前面的數(shù)字用來(lái)指定占位符,表示被格式化的數(shù)值占用的位置數(shù)量(字節(jié)還是什么不知道這樣的表述是否正確),指定之后比如%3d,代表這個(gè)整數(shù)要占用3個(gè)位置,前面如果有0代表占用的地方使用0補(bǔ)齊,沒(méi)有就使用空格補(bǔ)齊。指定的空間位置小于實(shí)際的數(shù)字大小,以實(shí)際占用的位置大小為準(zhǔn)。
指定小數(shù)的位數(shù):
>>> '%.f' % 3.1415926'3'>>> '%.1f' % 3.1415926'3.1'>>> '%.2f' % 3.1415926'3.14'>>> '%.3f' % 3.1415926'3.142'>>>
可以看出.后面的數(shù)字用來(lái)表示保留的小數(shù)點(diǎn)的位數(shù),".1"代表保留小數(shù)點(diǎn)后面一位小數(shù)。
如果不確定應(yīng)該用什么,%s永遠(yuǎn)起作用,它會(huì)把任何數(shù)據(jù)類(lèi)型轉(zhuǎn)換為字符串:
>>> 'Age: %s. Gender: %s' % (25, True)'Age: 25. Gender: True'
有些時(shí)候,字符串里面的%是一個(gè)普通字符怎么辦?這個(gè)時(shí)候就需要轉(zhuǎn)義,用%%來(lái)表示一個(gè)%:
>>> 'growth rate: %d %%' % 7'growth rate: 7 %'
嘗試使用其他方法對(duì)%進(jìn)行轉(zhuǎn)義,但是好像沒(méi)有用,有什么其他方法歡迎評(píng)論。
2、使用format 方法進(jìn)行格式化
代碼演示:
age = 25name = 'Swaroop'print('{0} is {1} years old'.format(name, age))print('Why is {0} playing with that python?'.format(name))位置使用{1}按照使用的順序?qū)懞茫竺娓袷绞褂?.format() 寫(xiě)好對(duì)應(yīng)的參數(shù)即可。
輸出結(jié)果:
Swaroop is 25 years oldWhy is Swaroop playing with that python?
其實(shí)也可以使用第一種方法實(shí)現(xiàn):
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注