1. 程式人生 > >python資料結構之字串格式化

python資料結構之字串格式化

字串格式化:

1.簡單運用

字串型別格式化採用format()方法,基本使用格式是:

     <模板字串>.format(<逗號分隔的引數>)

呼叫format()方法後會返回一個新的字串,引數從0 開始編號。

a="{}:計算機{}的CPU 佔用率為{}%。".format("2016-12-31","PYTHON",10)
print(a)

輸出:
2016-12-31:計算機PYTHON的CPU 佔用率為10%。

2.格式控制資訊

 format()方法中<模板字串>的槽除了包括引數序號,還可以包括格式控制資訊。此時,槽的內部樣式如下:
     {<引數序號>: <格式控制標記>}
     其中,<格式控制標記>用來控制引數顯示時的格式,包括:<填充><對齊><寬度>,<.精度><型別>6 個欄位,這些欄位都是可選的,可以組合使用,逐一介紹如下。

                                   

<寬度>

指當前槽的設定輸出字元寬度,如果該槽對應的format()引數長度比<寬度>設定值大,則使用引數實際長度。如果該值的實際位數小於指定寬度,則位數將被預設以空格字元補充。

<對齊>

指引數在<寬度>內輸出時的對齊方式,分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。

<填充>

指<寬度>內除了引數外的字符采用什麼方式表示,預設採用空格,可以通過<填充>更換。

s = "PYTHON"
a="{0:30}".format(s)
print(a)
b="{0:>30}".format(s)
print(b)
c="{0:*^30}".format(s)
print(c)
d="{0:-^30}".format(s)
print(d)
e="{0:3}".format(s)
print(e)



輸出:
PYTHON                        
                        PYTHON
************PYTHON************
------------PYTHON------------
PYTHON

逗號(,)

<格式控制標記>中逗號(,)用於顯示數字的千位分隔符,例如

f="{0:-^20,}".format(1234567890)
print(f)

輸出:
---1,234,567,890----

<.精度>

表示兩個含義,由小數點(.)開頭。對於浮點數,精度表示小數部分輸出的有效位數。對於字串,精度表示輸出的最大長度。

f="{0:-^20,}".format(1234567890)
print(f)
g="{0:.2f}".format(12345.67890)
print(g)
h="{0:H^20.3f}".format(12345.67890)
print(h)
i="{0:.4}".format("PYTHON")
print(i)


輸出:
---1,234,567,890----
12345.68
HHHHH12345.679HHHHHH
PYTH

<型別>

表示輸出整數和浮點數型別的格式規則。對於整數型別,輸出格式包括6 種:

  • b: 輸出整數的二進位制方式;
  • c: 輸出整數對應的 Unicode 字元;
  • d: 輸出整數的十進位制方式;
  • o: 輸出整數的八進位制方式;
  • x: 輸出整數的小寫十六進位制方式;
  • X: 輸出整數的大寫十六進位制方式;
  • 對於浮點數型別,輸出格式包括4 種:

  • j="{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
    print(j)
    
    
    輸出:
    110101001,Ʃ,425,651,1a9,1A9

     

  • e: 輸出浮點數對應的小寫字母 e 的指數形式;
  • E: 輸出浮點數對應的大寫字母 E 的指數形式;
  • f: 輸出浮點數的標準浮點形式;
  • %: 輸出浮點數的百分形式。
  •      浮點數輸出時儘量使用<.精度>表示小數部分的寬度,有助於更好控制輸出格式。

k="{0:e},{0:E},{0:f},{0:%}".format(3.14)
print(k)
l="{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)
print(l)


輸出:
3.140000e+00,3.140000E+00,3.140000,314.000000%
3.14e+00,3.14E+00,3.14,314.00%

%字元:標記轉換說明符的開始。