此程序的目的是根据指定的宽度打印格式正确的价格表。
代码如下:
width = int(input('Please enter width:'))
price_width = 10
item_width = width -price_width
header_fmt = "{{:{}}}{{:>{}}}".format(item_width, price_width)
fmt = "{{:{}}}{{:>{}.2f}}".format(item_width, price_width)
print('=' * width)
print(header_fmt.format('Item', 'Price'))
print('-' * width)
print(fmt.format('Apples', 0.4))
print(fmt.format('Pears', 0.5))
print(fmt.format('Cantaloupes', 1.92))
print(fmt.format('Dried Apricots(16 oz.)', 8))
print(fmt.format('Prunes(4 lbs.)', 12))
print('=' * width)
问题如下:
'{{:{}}}{{:>{}}}'.format(item_width, price_width)
中的花括号是什么意思?- item_width和price_width最后插入到哪里?
1.在print(header_fmt.format('Item', 'Price'))
中,当我已经像前面的问题一样插入了item_width和price_width时,Item和Price插入到哪里?
Ps:当我试图找到存储插入项的确切位置时,如item_width,price_width,Item和Price,我删除了一对花括号,它显示为TypeError
。
我只是想知道每一对花括号的含义?
另外,我想知道在item_width
和price_width
之后再次格式化header_fmt时发生了什么?
1条答案
按热度按时间yeotifhr1#
'{{:{}}}{{:>{}}}'.format(item_width, price_width)
中的花括号是什么意思?下面是Python文档的内容:
格式字符串包含由大括号
{}
括起来的“替换字段”。未包含在大括号中的任何内容都被视为文字文本,该文本将被原样复制到输出中。如果需要在文字文本中包含大括号字符,可以通过以下方法对其进行转义:{{
和}}
中的一个或多个。换句话说,每个
{}
都是一个“替换字段,”它将按顺序用format()
的一个参数替换。{{
和}}
是单大括号(分别为{
和}
);重复是必要的,这样它们就不会被误解请注意,格式字符串的解释是从左到右的,这与其他格式字符串处理一样。这会影响
}}}
在所显示的格式字符串中的解释方式。因为此时有一个开放的{
,第一个}
作为替换字段的结束,另外两个}}
成为一个}
,所以格式字符串的解释如下:其目的是建立一个格式字串以供日后使用。例如,如果
item_width
为12,price_width
为7,则结果为:这是一个只包含两个替换字段且没有其他文本的格式字符串。当该格式字符串与
print(header_fmt.format('Item', 'Price'))
一起使用时,将生成:在这里,字符串
Item
被放置在12个字符的字段的左边(所以它后面有8个空格),而Price
被放置在7个字符的字段的右边(因为>
)(所以它前面有2个空格)。关于格式字符串的文档可以在Python参考手册中找到(上面的引用就是从这里来的)。然而,你可能想从阅读Python教程中关于格式化的章节开始,这可能更容易理解,并且其中包括了一些例子。