python的2种字符串格式化输出
?字符串格式化代碼(typecode)
?
?
法一:
%格式使用下面的格式
%[(name)] [flags] [width][.precision] typecode
(name)輸出字典的value使用,這里的name是字典的key(實(shí)際指定時(shí),必須有外面的圓括號(hào))
如:
print("%(n)d ??%(x)s" % {"n":1,"x":'spam'})
print("%(n)d?? %(x)s" % dict(n=1,x='spam'))
注意:這種形式不能與其他形式混用,因?yàn)?后使用了{(lán)}或dict,這兩種形式只能夠針對”字典”
?
flags取值為:-(左對齊)、+(正負(fù)號(hào))、0(補(bǔ)零),不使用任何flag數(shù)字默認(rèn)是右對齊
[width]和[.precision],分別為總寬度(包括小數(shù)點(diǎn))和精度(小數(shù)點(diǎn)后的位數(shù)),可指定為*,則須在后面的列表中明確指出具體數(shù)值(一般情況下很少指定width和precision為*)
typecode:上表中的格式化代碼
?
?
法二:format方法
形式.格式
形式:兩種表示方式,位置參數(shù)(格式安裝位置指定即可)和關(guān)鍵字參數(shù)(格式必須按照name=‘value’指定)
?
??
注意:最后這種形式,形式是以關(guān)鍵字執(zhí)行,格式必須以name=value形式指定
要被打印的部分(即形式)通用格式:
{fieldname!conversionflag:formatspec}
fieldname是指定參數(shù)的一個(gè)數(shù)字或關(guān)鍵字(由此來確定匹配后面哪個(gè)參數(shù)),后面跟可選的“.name”或“[index]”成分引用
conversionflag可以是r、s或a分別是在該值上對repr、str或ascii內(nèi)置函數(shù)的一次調(diào)用。
formatspec指定了如何表示該值,包括字段寬度、對齊方式、補(bǔ)零、小數(shù)點(diǎn)精度等細(xì)節(jié),并且以一個(gè)可選的數(shù)據(jù)類型編碼結(jié)束
冒號(hào):后的formatspec具體形式為:
[[fill]align] [sign] [#] [0] [width] [.precision] [typecode]
fill可取0,即前導(dǎo)補(bǔ)0
align可能是<(左對齊)、>(右對齊)、=(一個(gè)標(biāo)記字符后的補(bǔ)充)、^(居中對齊)
字符串默認(rèn)是左對齊,數(shù)字默認(rèn)是右對齊
sign可取逗號(hào) , 在使用輸出代碼為d時(shí)(只能配合d使用),每三個(gè)數(shù)字輸出一個(gè)逗號(hào)
>>> '{0:,d}'.format(999999999)
'999,999,999'
#配合輸出代碼x或X或o,使輸出16進(jìn)制、8進(jìn)制數(shù)前導(dǎo)加0x或0X或0o
0補(bǔ)0
width表示總寬度,包括小數(shù)點(diǎn)位
[.precision]表示精度,小數(shù)點(diǎn)后的位數(shù)
typecode前面的輸出代碼
?
>>> '{0:X},{1:o},{2:b}'.format(255,255,255)
'FF,377,11111111'
>>> '{0:#X},{1:o},{2:b}'.format(255,255,255)
'0XFF,377,11111111'
??
轉(zhuǎn)載于:https://www.cnblogs.com/wyzhou/p/9887403.html
總結(jié)
以上是生活随笔為你收集整理的python的2种字符串格式化输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轻知 | 为什么全球只有13组根域名服务
- 下一篇: python 过滤文本中的标点符号(转)