7. python 字符串格式化方法(2)

7. python 字符串格式化方法(2

紧接着上一章节,这一章节我们聊聊怎样添加具体格式化

就是指定替换字段的大小、对齐方式和特定的类型编码,结构如下:

{fieldname!conversionflag:formatspec}

fieldname指定参数的一个数字或者关键字,后面可选.name或者[index]引用

conversionflag可以是r/s/a或者是在该值上对repr/str/ascii内置函数的一次调用

formatspec指定如何表示该值,如字段宽带、对齐方式、补零、小数点精度等,并以一个可选的数据类型编码结束

  >>> '{0:10}={1:10}'.format ('abcde',1.234566789
 
'abcde     =1.234566789'    >>> '{0:10}={1:3}'.format ('abcde',1.234566789

 
'abcde     =1.234566789'
 
 
>>> '{0:10}={1:3}'.format ('abcde',123456678.9

 
'abcde     =123456678.9'
 
 
>>> '{0:.format ('abcde
',123456678.9) 
  '
abcde     =123456678.9'    >>> '{0:>10}={1:3}'.format ('abcde
',123456678.9) 
  '
     abcde=
123456678.9' 
  >>> import sys 
  >>> '
{0.platform:>10}={1:3}
'.format (sys,123456678.9) 
  '
     win32=
123456678.9' 

上面举了一些例子

{0:10}表示一个10字节宽的字段的参数

{0:<10}表示一个左对齐的10字节宽的字段的参数

{0:>10}表示一个右对齐的10字节宽的字段的参数

{0.platform}读取sys模块的属性

下面再举一些例子

  >>> '{0:e},{1:.3e},{2:g}'.format (3.141592,3.141592,3.141592
 
'3.141592e+00,3.142e+00,3.14159'
 
 
>>> '{0:f},{1:.2f},{2:06.2f}'.format (3.141592,3.141592,3.141592

 
'3.141592,3.14,003.14'
 
 
>>>  

{0:e}代表使用科学计数法来表示

{1:.3e}只保留三位小数的科学计数法来表示

{2:g}使用g来表示浮点数

{1:.2f}保留两位小数的浮点数

{2:06.2f}六字节款的保留两位小数不足宽度补零的字符串

除了上面的十进制,还支持八进制、十六进制

  >>> '{0:X},{1:o},{2:b}'.format (255,255,255
 
'FF,377,11111111'
 
 
>>> bin(255),int('11111111',2
),0b11111111 
  (
'0b11111111', 255, 255

还支持在format里面嵌入表达式,动态获取

  >>> '{0:f},{1:.2f},{2:06.2f}'.format (1/3,1/3,1/3
 
'0.333333,0.33,000.33'
 

posted @ 2018-01-26 11:57  全威儒  阅读(224)  评论(0编辑  收藏  举报