閱讀mattkang在csdn中的部落格《飄逸的python - 增強的格式化字串format函式》所做筆記

自從python2.6開始,新增了一種格式化字串的函式str.format(),他通過{}和:來代替%。

1、對映例項

In[1]: '{0},{1}'.format('abc', 18)
Out[1]: 'abc,18' In[2]: '{}'.format(18)
out[2]: 18 In[3]: '{1},{0},{1}'.format('abc', 123)
out[3]: '123,abc,123' In[4]: '{name}, {age}'.format(age=18, name = 'abc')
out[4]: 'abc, 18' In[5]: p = ['abc', 18]
In[6]: '{0[0]}, {0[1]}'.format(p)
out[6]: 'abc, 18'

2、格式限定符

它有著豐富的格式限定符(語法是{}中帶:), 比如:

填充與對齊:

填充欲對其一起使用

^, <, >分別是居中,左對齊,右對齊,後跟寬度

:後面帶填充的字元, 只能是一個字元,不指定的話預設用空格填充

比如:

In[7]: '{:>8}'.format('')
out[7]: '' In[8]: '{:0>8}'.format('')
out[8]: ''

精度與型別

精度常跟型別f一起使用

In[9]: '{:.2f}'.format(321.3456)
out[9]: '321.34'

其中.2表示長度為2的精度,f表示float型別。

其他型別

主要就是進位制, b, d, o, x分別是二進位制、十進位制、八進位制和十六進位制

In[10]: '{:b}'.format(17)
out[10]: '' In[11]: '{:d}'.format(17)
out[11]: '' In[12]: '{:o}'.format(17)
out[12]: ''

用,號還能用來做金額的千位分隔符

In[13]: '{:,}'.format(1234567890)
out[13]: '1,234,567,890'