format函数是Python中一个很强大的格式化输出函数,使用花括号{}来占位,下面结合代码来讲述format函数的用法。
一、匹配顺序
print('姓名:{},年龄:{}'.format('张三', 25))
运行结果:姓名:张三,年龄:25
可以看出,format将根据顺序对前面的花括号进行匹配输出。当然,花括号内也可以写上序号,对format中的内容进行匹配,如下代码所示:
print('姓名:{0},年龄:{1}'.format('张三', 25))
运行结果:姓名:张三,年龄:25
print('姓名:{0},年龄:{0}'.format('张三', 25))
运行结果:姓名:张三,年龄:张三
甚至还可以通过类似字典的方式指定映射输出:
print('姓名:{n},年龄:{a}'.format(n='张三', a=25))
运行结果:姓名:张三,年龄:25
对于列表,format也提供了很方便的输出:
person= ['张三' , 25] print('姓名:{0[0]},年龄:{0[1]}'.format(person))
运行结果:姓名:张三,年龄:25
花括号内,第一个0表示format()函数内参数的序号。对于字典:
person= {'姓名':'张三' , '年龄':25} print('姓名:{0[姓名]},年龄:{0[年龄]}'.format(person))
运行结果:姓名:张三,年龄:25
注意:中括号内的key是不用引号引起来的。如果改成{0[“姓名”]}就会报错。
二、对齐与宽度
format使用>、^、<来表示左对齐、居中对齐、右对齐。在对齐符号(>、^、<)后面加上的数字,表示宽度,在对齐符号之前加上特定字符表示当输出的内容不足以占满宽度时,以特定字符填充。
print('姓名:{:0^8},年龄:{:*>4}'.format('张三', 25))
运行结果:姓名:000张三000,年龄:**25
注意:冒号不能少。
三、精度
print('{:.3f}'.format(123.45678))
输出结果:123.457
最后一个数字之所以是7,是因为format会对数据进行四舍五入。
四、千位分隔符
print('{:,}'.format(123456789))
输出结果:123,456,789
五、进制数输出
b、d、o、x分别是二进制、十进制、八进制、十六进制
print('{:b}'.format(10))
输出结果:1010
六、总结
先给出一个综合应用:
print('{0:*^20,.3f} {1:*>20,.3f} {1:-^15}'.format(12345.6789, 5647854.12452,'我是字符串'))
可以看出,冒号之前的数字实际上是序号,当format内只有一位元素需要输出时,这个序号可以省略(冒号不能省略)。另外,限定的顺序不能搞错,在{}内,第一是元素序号,第二是冒号,第三是特定补充符号,第四对齐方式,第五宽度,第六千分位分隔符号,第七精度。
以上内容纯属个人总结,有误请联系我。