注册 登录
编程论坛 Python论坛

请教关于format()的问题

sora2015x 发布于 2019-09-10 22:10, 2809 次点击
这个问题想了很久都没有想出来,希望大神帮帮手,谢谢!

下面代码的执行结果是
a = 123456789
b = ‘*’
print('{0:{2}>{1},}\n{0:{2}^{1},}\n{0:{2}<{1},}'.format(a,20,b))

A.

*********123,456,789
****123,456,789*****
123,456,789*********

B.

****123,456,789*****
*********123,456,789
123,456,789*********

C.

****123,456,789*****
123,456,789*********
*********123,456,789

D.

*********123,456,789
123,456,789*********
****123,456,789*****
答案是:A

问题1:
请问{2}和{1}是什么意思?

问题2:
请问 (a,20,b)有什么作用?
问题3:
请问这些“*”图案的个数是怎样规定的?
希望能够详细地解答,谢谢
3 回复
#2
肥科的竹子2019-09-11 10:04
{2}和{1}指format中的索引值为2和1的元素
0:{2}>{1}  =====》  '>'表示左边填充,'>'左边的{2}表示用{2}的内容填充,{1}表示输出的宽度,你这里的1为20,表示用{2}的内容在左边填充,使整个输出20个字符
https://www.
#3
sora2015x2019-09-12 07:40
再问大神,为什么结果是:*********123,456,789,每3个一个逗号分隔?谢谢!
#4
fall_bernana2019-09-12 16:09
回复 3楼 sora2015x
文章里有:
1000000 {:,}    1,000,000   以逗号分隔的数字格式
也就是{0:{2}>{1},} 这里的,
1