format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
%能实现的format都能实现 并且功能更多,操作更方便 。
优势:
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
小例子:
print('hello %s'%'world') 等价于print ('hello { }'.format('world'))
输出为
hello world
用法:
顺序(数值)匹配
print('hello {0} i am {1}'.format('Kevin','Tom') ) 输出为 hello Kevin i am Tom
这里的大括号里面 0 和1 指的是后面format对象的顺序 。也可以自行定义顺序 输出结果顺序不同
print('hello {0} i am {1}'.format('Kevin','Tom') ) 输出为 hello Tom i am Kevin
也可以通过键值来匹配:
print ('hello {name1} i am {name2}'.format(name1='Kevin',name2='Tom') )输出hello Kevin i am Tom
对齐与填充
数字 | 格式 | 输出 | 描述 |
5 | {:0>2} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x^4} | x10x | 数字补x (填充右边, 宽度为4) |
13 | {:10} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10} | 13 | 左对齐 (宽度为10) |
13 | {:^10} | 13 | 中间对齐 (宽度为10 |
并且定义好格式可以直接调用内置函数:
tplt = "{:2}\t{:8}\t{:<16}"
print(tplt.format("序号", "价格", "商品名称"))
这里tplt.format就是直接调用了format函数。
相当于().format()等价于 前面()变成具体的变量 tplt
().format→tplt.format性质是一样的