Python——格式化

Python有兩種格式化字符創(chuàng)的方式。我們簡單地稱為舊式和新式。這兩種方式的格式化在Python2和Python3中都使用。

使用%的舊式格式化

舊式格式化的形式為:string % data

  • string 包含的是待插值的序列

轉(zhuǎn)換類型

  • %s 字符串
  • %d 十進(jìn)制整數(shù)
  • %x 十六進(jìn)制整數(shù)
  • %o 八進(jìn)制整數(shù)
  • %f 十進(jìn)制浮點數(shù)
  • %e 以科學(xué)計數(shù)法表示的浮點數(shù)
  • %g 十進(jìn)制或科學(xué)計數(shù)法表示的浮點數(shù)
  • %% 文本值%本身
    一個字符串內(nèi)的%s意味著此處需要插入一個字符串,字符串中出現(xiàn)%的次數(shù)需要與%之后所提供的數(shù)據(jù)個數(shù)相同,如果需要插入一個數(shù)據(jù),直接將需要插入的數(shù)據(jù)置于%后即可,如果需要插入多個數(shù)據(jù),則需要將它們封裝進(jìn)一個元組(以圓括號為界,逗號分開)
    還可以在%和指定類型的字母之間設(shè)定最大和最小寬度、排版以及填充字符
str_a = 'test123'
float_f = 3.14
n = 42
print_str = 'str = %s float is = %f number is = %d' % (str_a, float_f, n)
print(print_str)
  • 為每個變量設(shè)定最小域?qū)挒?0個字符,右對齊,左側(cè)不夠用空格填充
blank_str = '%10s%10f%10d' % (str_a, float_f, n)
print(blank_str)
  • 左對齊
blank_str = '%-10s%-10f%-10d' % (str_a, float_f, n)
print(blank_str)
  • 右對齊,并且將浮點數(shù)的精度限制在小數(shù)點后4位
>>> '%10.4s%10.4f%10.4d' % (s,f,n)
'      hahh    3.1416      0056'
  • 去掉最小域?qū)挒?0限制
>>> '%.4s%.4f%.4d' %  (s,f,n)
'hahh3.14160056'
  • 作為將域?qū)?字符寬度等設(shè)定作為參數(shù)
>>> '%*.*d%*.*f%*.*s'%(3,4,n,5,4,f,10,2,s)
'00563.1416        ha'

使用{}和format的新式格式化

在python3中,使用新式格式化

>>> '{},{},{}'.format(n,f,s)
'678,1.242527,tecalgur'
  • 自定義顯示順序
>>> '{2},{1},{0}'.format(f,s,n)
'678,tecalgur,1.242527'

上面的程序中 {2}代表顯示數(shù)組第3個 {1}代表顯示數(shù)組第2個 {0}代表顯示數(shù)組第1個

  • 參數(shù)可以是字典或者變量,個格式串中的標(biāo)識符可以引用這些名稱
>>> '{a},{b},{c}'.format(a = 's123',b=3.14,c=22)
's123,3.14,22'
  • 指定參數(shù)格式
>>> '{0:d}+{2:f}+{1:s}'.format(a,c,b)
'44+3.131310+aaabbbccc'
  • 設(shè)置最小域?qū)?右對齊
>>> '{0:10d}{1:10f}{2:10s}'.format(a,b,c)
'        44  3.131310aaabbbccc '
  • 另一種方式右對齊
>>> '{0:>3f}+{2:>2s}+{1:2d}'.format(3.111,23,'wx')
'3.111000+wx+23'
  • 左對齊
>>> '{0:<3f}+{2:<2s}+{1:<2d}'.format(3.111,23,'wx')
'3.111000+wx+23'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • format格式化字符串方法相較于老版%格式方法的優(yōu)點:1.不需要理會數(shù)據(jù)類型的問題,在%方法中'%s'只能替代字...
    雷子_閱讀 1,269評論 0 1
  • 在許多編程語言中都包含有格式化字符串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內(nèi)置有對字...
    古佛青燈度流年閱讀 774評論 2 0
  • 輸出信息使我們獲取程序調(diào)試信息的重要渠道; 恰到好處的輸出格式能幫我們直觀的查看調(diào)試信息。 常用格式化符種類及描述...
    老黃愛Python閱讀 2,888評論 0 3
  • 用python處理數(shù)據(jù)時,不管是直接打印結(jié)果展示還是函數(shù)返回值,經(jīng)常需要格式化輸出,對于一些特殊的用法,偶爾會忘記...
    小蝸牛的成長閱讀 1,370評論 0 0
  • 之所以再談一次守本分的話題,是因為幾天前發(fā)生的一件事情讓我對這個事情又有了一些新的看法。有一個同事,平時喜歡關(guān)心公...
    國璽同學(xué)閱讀 521評論 0 0