Python 的格式化字符串format函数

阅读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'

 

posted @ 2015-07-05 21:20  第八片叶子  阅读(287)  评论(0编辑  收藏  举报