Python 输出格式化:format
输出格式化:format
Python2.6 开始,新增了一种格式化字符串的函数 str.format()
,它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
顺序匹配
format 函数可以接受不限个参数,位置可以不按顺序:
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
"hello world"
>>> "{0} {1}".format("hello", "world") # 设置指定位置
"hello world"
键值匹配
>>>"这是一个关于{0}、{1}和{girl}的故事。".format(
"小明", "阿飞", girl="阿香"))
"这是一个关于小明、阿飞和阿香的故事。
示例数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
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) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
此外我们可以使用大括号 {} 来转义大括号,如下实例:
>>>"{} 对应的位置是 {{0}}".format("lengqie")
"lengqie 对应的位置是 {0}"
使用元组和字典传参
str.format()
方法还可以使用 *元组
和 **字典
的形式传参,两者可以混合使用。
位置参数、关键字参数、*元组
和 **字典
也可以同时使用,但是要注意,位置参数要在关键字参数前面,*元组
要在 **字典
前面。
# 使用元组传参
>>>infos = "钢铁侠", 66, "小辣椒"
>>>"我是{},身价{}亿。".format(*infos)
"我是钢铁侠,身价66亿。"
>>>"我是{2},身价{1}亿。".format(*infos)
"我是小辣椒,身价66亿。"
# 使用字典传参
>>>venom = {"name": "毒液", "weakness": "火"}
>>>"我是{name},我怕{weakness}。".format(**venom)
"我是毒液,我怕火。"