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