我正在处理数字格式。我假设.format
允许使用多个参数:
a = 1.11111111111
b = 0.9
s = '({0:.2f}, {0:.2f})'.format(a, b)
print(s)
返回:
'(1.11, 1.11)'
而不是:
'(1.11, 0.90)'
另一方面,这很好用:
'({}, {})'.format(a, b)
返回:
'(1.11111111111111, 0.9)'
知道问题在哪里?
答案 0 :(得分:10)
你用了两个参数值a(0),你应该在第二个参数中调用值b(1)。
:
之前的值是为占位符提供明确的位置索引。
这允许在不改变参数的情况下重新排列显示顺序。
更改
s = '({0:.2f}, {0:.2f})'.format(a, b)
要:
s = '({0:.2f}, {1:.2f})'.format(a, b)
答案 1 :(得分:5)
:
字符前面的值指定字段名称或转换;在这两种情况下使用0
,您都可以通过元素索引告诉.format
在两种情况下使用a
。
在第二种情况下,'({}, {})'.format(a, b)
,不指定一个位置,.format
将每个空{}
对替换为以递增顺序提供的元素位置。
根据建议,一个简单的替换是使用1
表示您要使用b
而不是a
。或者,只需省略它们:
s = '({:.2f}, {:.2f})'.format(a, b)
获得类似的效果。
您应浏览Syntax for the format strings以了解格式化时使用的规则。