本帖最后由 lightninng 于 2021-12-6 00:00 编辑
这个算是字符串格式化的综合应用把,首先把字符串格式化的基本规则说一下,然后再来解释,
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。(引用自
https://www.runoob.com/python/att-string-format.html)
字符串中的{}表示引用比如
"{0:.2f}{1:0>10}".format(3.14, 5)
这就是一个格式化字符串,格式化字符串中的{}表示参数的引用,
{}中的内容使用冒号隔开,冒号前面是一个数字,表示引用的序号,如上例中format方法的参数有两个分别是3.14和5,这两个参数就对应前面字符串中的0和1号引用
{}中冒号后面的部分是表示输出的格式,具体的使用方法可以看
https://www.runoob.com/python/att-string-format.html
下面我们来看下你的问题
可以看到print函数打印的是一个格式化字符串
"{0:{1}{3}{2}}".format(a,b,25,c)
format方法传入了四个参数分别是a,b,25,c,他们的引用序号分别是0,1,2,3
字符串中最外层是一个大括号,
大括号中冒号前面的部分是0,也就是我们打印格式化后的第0个引用参数a
冒号后面的部分,是我们对第0个引用参数a的格式化方式{1}{3}{2}分别引用了第1个参数、第3个参数和第2个参数,我们知道分别是b,25,c,其中b="=",c=">",所以我们的格式化方式是=>25
也就是说字符串可以等价为
参考
https://www.runoob.com/python/att-string-format.html中关于>的解释,可以知道,是使用=对字符串做长度为25的左侧填充,所以打印出来的结果应该是
===============Python程序设计
因为字符串a="Python程序设计"长度为10,所以格式化后在它左侧填充了15个=