Python中format函式字串格式化入門

deeply發表於2021-09-11

Python中format函式字串格式化入門

格式化在程式開發中非常常見,大家肯定不陌生,Python中也存在多重格式化方式,format函式就是其中一種。

函式原型

format(value[, format_spec])

引數意義

value: 需要被格式化的字串

format_spec: 格式化的格式

函式定義與用法

本函式把值value按format_spec的格式來格式化,然而函式解釋format_spec是根據value的型別來決定的,不同的型別有不同的格式化解釋。當引數format_spec為空時,本函式等同於函式str(value)的方式。

format () 函式可以接受不限個引數,位置可以不按順序。

其實本函式呼叫時,是把format(value, format_spec)的方式轉換為type(value).__format__(format_spec)方式來呼叫,因此在value型別裡就查詢方法__format__(),如果找不到此方法,就會返回異常TypeError。

其中format_spec的編寫方式如下形式:

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]
fill        ::=  <any character>
align       ::=  "<" | ">" | "=" | "^"
sign        ::=  "+" | "-" | " "
width       ::=  integerprecision   ::=  
integertype ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" |
 "x" | "X" | "%"
fill是表示可以填寫任何字元。
align是對齊方式,<是左對齊, >是右對齊,^是居中對齊。
sign是符號, +表示正號, -表示負號。w
idth是數字寬度,表示總共輸出多少位數字。
precision是小數保留位數。

相容性

Python3.x

Python2.6及以上版本

注意事項

format是是python2.6新增的一個格式化字串的方法,相對於老版的%格式方法,它有很多優點。

1.不需要理會資料型別的問題,在%方法中%s只能替代字串型別

2.單個引數可以多次輸出,引數順序可以不相同

3.填充方式十分靈活,對齊方式十分強大

4.官方推薦用的方式,%方式將會在後面的版本被淘汰

程式碼例項

print(format(2918))
print(format(0x500, 'X'))
print(format(3.14, '0=10'))
print(format(3.14159, '05.3'))
print(format(3.14159, 'E'))
print(format('test', '<20'))
print(format('test', '>20'))
print(format('test', '^20'))

輸出結果

2918
500
0000003.14
03.14
3.141590E+00
test                
                test
        test

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1978/viewspace-2837064/,如需轉載,請註明出處,否則將追究法律責任。

相關文章