Python初学者提问字符串格式问题

为什么4,5行代码要多一对{}?在代码中要做两次转换,那不应该是'{:{}}'为什么会错误必须要多一对花括号变成'{{:{}}}'

代码:
width = int(input('Please enter width:'))

price_width = 10

item_width = width - price_width

header_format = '{{:{}}}{{:>{}}}'.format(item_width,price_width)

format = '{{:{}}}{{:>{}.2f}}'.format(item_width,price_width)

print('='*width)

print(header_format.format('Item','Price'))

print('-'*width)

print(format.format('Apples',0.4))
print(format.format('Pears',0.5))
print(format.format('Cantaloupes',1.92))
print(format.format('ried Apricots (16 oz.)',8))
print(format.format('Apples',0.4))
print(format.format('Prunes (4 lbs.)',12))

print('='*width)

a = input('Please press enter!')

我的天呐 你这是要干什么?你直接把你的意图写出来吧,你这让我猜 真累 还有 正常情况下一个' {}'代表格式中的一个参数,如果数字格式化{:.2f},像你代码这样 它只会把最里面的两队{}替换掉
即{{:item_width}}{{:>price_width.2f}} 或者你用“%d %.2f”%(n1,n2)来