最近在学习Python,对format()函数的使用不是很清楚,搜索了一些前辈的博客获得了一些经验,加上自己摸索得出了一些新的想法:
1.位置参数控制输出
'今天是一个{0}且{1}的一天'.format('温暖','舒服')
输出:‘今天是一个温暖且舒服的一天’
'今天是一个{1}且{0}的一天'.format('温暖','舒服')
输出:‘今天是一个舒服且温暖的一天’
说明{0},{1}的位置不重要,只要在format()中有值可以与之对应即可。
在format()中可以有多余的参数值,但不可以缺少参数值:
'今天是一个{1}且{0}的一天'.format('温暖','舒服','和煦')
输出:‘今天是一个舒服且温暖的一天’
'今天是一个{1}且{0}的一天'.format('温暖')
报错:IndexError: tuple index out of range
2.关键字参数控制输出
'{name} is {age} years old this year'.format(name='xm',age=21)
输出:‘xm is 21 years old this year’
说明:
1)无论是位置参数还是关键字参数,都可以使用同一个参数多次,比如:
'{1} {0} {1}'.format('am','I')
输出:‘I am I’
'{pron} {verb} {pron}'.format(pron='I',verb='am')
输出:‘I am I’
2)单个花括号被解析为参数,成双使用的花括号被解析为一个花括号,比如:
'{{0}}'.format('hh')
输出:’{0}’
'{{{0}:{1}}} is a dictionary type'.format('key',"'value'")
输出:"{key:‘value’} is a dictionary type"
'{hh}'.format()
报错:KeyError: ‘hh’
'{}'.format()
报错:IndexError: tuple index out of range
以上为python3的测试结果,也是个人在学习中摸索的结果,如果有问题还望大神指点并联系我修改,以方便其他学习者。