Python format()格式化輸出方法

自 Python 2.6 版本開始,字符串類型(str)提供瞭 format() 方法對字符串進行格式化,本節就來學習此方法。

format() 方法的語法格式如下:

str.format(args)

此方法中,str 用於指定字符串的顯示樣式;args 用於指定要進行格式轉換的項,如果有多項,之間有逗號進行分割。

學習 format() 方法的難點,在於搞清楚 str 顯示樣式的書寫格式。在創建顯示樣式模板時,需要使用{}和:來指定占位符,其完整的

語法格式為:

{ [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }

註意:格式中用 [] 括起來的參數都是可選參數,即可以使用,也可以不使用。

各個參數的含義如下:

  • index:指定:後邊設置的格式要作用到 args 中第幾個數據,數據的索引值從 0 開始。如果省略此選項,則會根據 args 中數據的先後順序自動分配。
  • fill:指定空白處填充的字符。註意,當填充字符為逗號(,)且作用於整數或浮點數時,該整數(或浮點數)會以逗號分隔的形式輸出,例如: (1000000會輸出 1,000,000)。
  • align:指定數據的對齊方式,具體的對齊方式如表 1 所示。

表 1 align 參數及含義:

align 含義
< 數據左對齊。
> 數據右對齊。
= 數據右對齊,同時將符號放置在填充內容的最左側,該選項隻對數字類型有效。
^ 數據居中,此選項需和 width 參數一起使用。

sign:指定有無符號數,此參數的值以及對應的含義如表 2 所示:

表 2 sign 參數以含義:

sign參數 含義
+ 正數前加正號,負數前加負號。
正數前不加正號,負數前加負號。
空格 正數前加空格,負數前加負號。
# 對於二進制數、八進制數和十六進制數,使用此參數,各進制數前會分別顯示 0b、0o、0x前綴;反之則不顯示前綴。
  • width:指定輸出數據時所占的寬度。
  • precision:指定保留的小數位數。
  • type:指定輸出數據的具體類型,如表 3 所示。

 

表 3 type 占位符類型及含義:

type類型值 含義
s 對字符串類型格式化。
d 十進制整數。
c 將十進制整數自動轉換成對應的 Unicode 字符。
e 或者 E  轉換成科學計數法後,再格式化輸出。
g 或 G 自動在 e 和 f(或 E 和 F)中切換。
b 將十進制數自動轉換成二進制表示,再格式化輸出。
o 將十進制數自動轉換成八進制表示,再格式化輸出。
x 或者 X 將十進制數自動轉換成十六進制表示,再格式化輸出。
f 或者 F 轉換為浮點數(默認小數點後保留 6 位),再格式化輸出。
% 顯示百分比(默認顯示小數點後 6 位)。

【例 1】

str="網站名稱:{:>9s}\t網址:{:s}"
print(str.format("C語言中文網","c.biancheng.net"))


輸出結果為:

Traceback (most recent call last):
  File “C:\Users\mengma\Desktop\1.py”, line 2, in
    print(str.format(“C語言中文網”,”c.biancheng.net”))
ValueError: cannot switch from automatic field numbering to manual field specification

【例 2】

在實際開發中,數值類型有多種顯示需求,比如貨幣形式、百分比形式等,使用 format() 方法可以將數值格式化為不同的形式。

#以貨幣形式顯示
print("貨幣形式:{:,d}".format(1000000))
#科學計數法表示
print("科學計數法:{:E}".format(1200.12))
#以十六進制表示
print("100的十六進制:{:#x}".format(100))
#輸出百分比形式
print("0.01的百分比表示:{:.0%}".format(0.01))


輸出結果為:

貨幣形式:1,000,000
科學計數法:1.200120E+03
100的十六進制:0x64
0.01的百分比表示:1%

到此這篇關於Python format()格式化輸出方法的文章就介紹到這瞭,更多相關Python format()格式化輸出內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: