python关于字符串format()格式化的问题
文章部分转载自: http://wiki.xuetang9.com/?p=7058
方法: str.format(args)
str :用于指定字符串模板
args:用于指定要转换的项,如有多项,则用逗号进行分割
模板介绍:用{}和: 指定占位符
{index:填充物|对齐方式|sign|#|宽度|千分位|.精度|指定类型}
index: 要设置格式的对象在参数列表中索引位置,索引值从0开始。
sign:“+”:正数加正号,负数加负号
“-”:正数不变,负数加负号
“ ”(空格):负数加负号
关于index的见解:(关于列表,元组,字典作为参数)
print(“网站名:{name}, 地址 {url}”.format(name=“菜鸟教程”, url=“www.runoob.com”))
通过字典设置参数
site = {“name”: “菜鸟教程”, “url”: “www.runoob.com”}
print(“网站名:{name}, 地址 {url}”.format(**site))
通过列表索引设置参数
my_list = [‘菜鸟教程’, ‘www.runoob.com’]
print(“网站名:{0[0]}, 地址 {0[1]}”.format(my_list)) == # “0” 是必须的 # 若列表参数没有*,则需要先指定参数列表的位置,在用[]写上该列表的指定元素索引==
网站名:菜鸟教程, 地址 www.runoob.com
my_list = [‘菜鸟教程’]
my_list2 = [‘sdf’,‘dfsfs’]
print("网站名:{0}, ".format(my_list)) #如果列表参数加上,则模块索引位置可以只写{0}和{1},
#若该列表只有一个元素,则模块只需要填写该列表在参数的位置,而 该列表在参数位置上需加上*
网站名:菜鸟教程,
使用元组传参
infos = ‘钢铁侠’, 66, ‘小辣椒’
print(‘我是{},身价{}亿。’.format(*infos))
print(‘我是{2},身价{1}亿。’.format(*infos))
使用字典传参
venom = {‘name’: ‘毒液’, ‘weakness’: ‘火’}
print(‘我是{name},我怕{weakness}。’.format(**venom))
同时使用元组和字典传参
hulk = ‘绿巨人’, ‘拳头’
captain = {‘name’: ‘美国队长’, ‘weapon’: ‘盾’}
print(‘我是{}, 我怕{weapon}。’.format(*hulk, **captain))
print(‘我是{name}, 我怕{1}。’.format(*hulk, **captain))
同时使用位置参数、元组、关键字参数、字典传参
注意:
位置参数要在关键字参数前面
*元组要在**字典前面
tup = ‘鹰眼’,
dic = {‘weapon’: ‘箭’}
text = ‘我是{1},我怕{weakness}。我是{0},我用{weapon}。’
text = text.format(*tup, ‘黑寡妇’, weakness=‘男人’, **dic)
print(text)
另外