紧接着上一章节,这一章节我们聊聊怎样添加具体格式化
就是指定替换字段的大小、对齐方式和特定的类型编码,结构如下:
{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"
就说到这里,谢谢大家