我知道我能做到
> print '|{:16.3f}|\n|{:16.3f}|'.format(1, 10)
| 1.000|
| 10.000|
填充一个数字,以便输出是一定数量的列,我可以做
> print '|{:<16.3f}|\n|{:<16.3f}|'.format(1, 10)
|1.000 |
|10.000 |
左对齐格式化字段。有没有办法同时做两件事?我想在填充号码上留下左对齐,所以我的输出看起来像
> print '|{:<format>}|\n|{:<format>}|'.format(1, 10)
| 1.000 |
|10.000 |
其中<format>
是我试图解决的问题。具体来说,我想要一个6字符格式的浮点数,其中3个小数位左对齐到16列。我知道我可以使用多种字符串格式来解决这个问题,但我希望能够同时完成所有这些工作。
答案 0 :(得分:4)
您 将格式化的数字嵌入更宽的列:
>>> print '|{:16s}|\n|{:16s}|'.format(format(1, '6.3f'), format(10, '6.3f'))
| 1.000 |
|10.000 |
我使用format()
函数调用来格式化数字。
虽然str.format()
解析器可以处理格式化插槽中的填充参数,但您无法格式化格式输出。
当然,您可以在格式化字符串中添加空格,因为您已经控制了知道的格式的宽度在数字后面将有10个空格:
>>> print '|{:6.3f} |\n|{:6.3f} |'.format(1, 10)
| 1.000 |
|10.000 |