格式化 Python 中的两个数字
Formatting two numbers in Python
我正在处理数字格式。我假设 .format
允许使用多个参数:
a = 1.11111111111
b = 0.9
s = '({0:.2f}, {0:.2f})'.format(a, b)
print(s)
Returns:
'(1.11, 1.11)'
而不是:
'(1.11, 0.90)'
另一方面,这工作正常:
'({}, {})'.format(a, b)
Returns:
'(1.11111111111111, 0.9)'
知道问题出在哪里吗?
您为两个参数都使用了值 a (0),您应该在第二个参数中调用值 b (1)。
:
之前的值用于为占位符提供明确的位置索引。
这允许 re-arranging 在不更改参数的情况下显示顺序。
改变
s = '({0:.2f}, {0:.2f})'.format(a, b)
收件人:
s = '({0:.2f}, {1:.2f})'.format(a, b)
:
字符之前的值指定字段名称或转换;通过在这两种情况下使用 0
,您实际上是在通过元素索引告诉 .format
在这两种情况下都使用 a
。
在你的第二种情况下,'({}, {})'.format(a, b)
,通过 not 指定位置,.format
用元素替换每个空对 {}
按位置递增顺序提供。
如建议的那样,一个简单的替换是使用 1
来指示您要使用 b
而不是 a
。或者,简单地省略它们:
s = '({:.2f}, {:.2f})'.format(a, b)
获得类似的效果。
您应该浏览 Syntax for the format strings 以了解格式化时使用的规则。
我正在处理数字格式。我假设 .format
允许使用多个参数:
a = 1.11111111111
b = 0.9
s = '({0:.2f}, {0:.2f})'.format(a, b)
print(s)
Returns:
'(1.11, 1.11)'
而不是:
'(1.11, 0.90)'
另一方面,这工作正常:
'({}, {})'.format(a, b)
Returns:
'(1.11111111111111, 0.9)'
知道问题出在哪里吗?
您为两个参数都使用了值 a (0),您应该在第二个参数中调用值 b (1)。
:
之前的值用于为占位符提供明确的位置索引。
这允许 re-arranging 在不更改参数的情况下显示顺序。
改变
s = '({0:.2f}, {0:.2f})'.format(a, b)
收件人:
s = '({0:.2f}, {1:.2f})'.format(a, b)
:
字符之前的值指定字段名称或转换;通过在这两种情况下使用 0
,您实际上是在通过元素索引告诉 .format
在这两种情况下都使用 a
。
在你的第二种情况下,'({}, {})'.format(a, b)
,通过 not 指定位置,.format
用元素替换每个空对 {}
按位置递增顺序提供。
如建议的那样,一个简单的替换是使用 1
来指示您要使用 b
而不是 a
。或者,简单地省略它们:
s = '({:.2f}, {:.2f})'.format(a, b)
获得类似的效果。
您应该浏览 Syntax for the format strings 以了解格式化时使用的规则。