阅读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('189') out[7]: ' 189' In[8]: '{:0>8}'.format('189') out[8]: '00000189'
精度与类型
精度常跟类型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]: '10001' In[11]: '{:d}'.format(17) out[11]: '17' In[12]: '{:o}'.format(17) out[12]: '21'
用,号还能用来做金额的千位分隔符
In[13]: '{:,}'.format(1234567890) out[13]: '1,234,567,890'