我知道我能做到
> 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 字符格式的 float ,小数点后 3 位左对齐到 16 列。我知道我可以用多种字符串格式来解决这个问题,但我想同时解决所有问题。
您必须将格式化的数字嵌入到更宽的列中:
>>> 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 |
我是一名优秀的程序员,十分优秀!