Kar*_*cek 5 python string string-formatting python-3.x
我正在处理数字的格式.我假设.format允许使用多个参数:
a = 1.11111111111
b = 0.9
s = '({0:.2f}, {0:.2f})'.format(a, b)
print(s)
Run Code Online (Sandbox Code Playgroud)
返回:
'(1.11, 1.11)'
Run Code Online (Sandbox Code Playgroud)
代替:
'(1.11, 0.90)'
Run Code Online (Sandbox Code Playgroud)
另一方面,这很好用:
'({}, {})'.format(a, b)
Run Code Online (Sandbox Code Playgroud)
返回:
'(1.11111111111111, 0.9)'
Run Code Online (Sandbox Code Playgroud)
知道问题出在哪里?
omr*_*don 10
您用于两个参数值a(0),您应该在第二个参数中调用值b(1).
之前的值:是给占位符一个明确的位置索引.
这允许在不改变参数的情况下重新排列显示顺序.
更改
s = '({0:.2f}, {0:.2f})'.format(a, b)
Run Code Online (Sandbox Code Playgroud)
至:
s = '({0:.2f}, {1:.2f})'.format(a, b)
Run Code Online (Sandbox Code Playgroud)
:字符前面的值指定字段名称或转换; 通过0在两种情况下使用,你实际上是.format通过元素索引来告诉a两种情况.
在第二种情况下,'({}, {})'.format(a, b)通过不指定位置,.format用{}逐渐增加的位置顺序替换每个空对.
如建议的那样,一个简单的替换是1用来表示你想要使用b而不是a.或者,只需省略它们:
s = '({:.2f}, {:.2f})'.format(a, b)
Run Code Online (Sandbox Code Playgroud)
得到类似的效果.