Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用填充和对齐设置浮点格式_Python_Python 2.7_String Formatting - Fatal编程技术网

Python 使用填充和对齐设置浮点格式

Python 使用填充和对齐设置浮点格式,python,python-2.7,string-formatting,Python,Python 2.7,String Formatting,我知道我能行 > 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 '|{: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          |
我要解决的问题在哪里。具体来说,我想要一个6个字符格式的浮点数,小数点后3位左对齐为16列。我知道我可以用多种字符串格式来解决这个问题,但我想同时解决所有问题。

您必须将格式化的数字嵌入到更宽的列中:

>>> print '|{:16s}|\n|{:16s}|'.format(format(1, '6.3f'), format(10, '6.3f'))
| 1.000          |
|10.000          |
我使用格式化函数调用来格式化数字

尽管str.format解析器可以处理从格式化槽填充参数,但不能格式化格式化输出

当然,您可以只在格式字符串中添加空格,因为您已经控制了格式的宽度,您知道数字后面将有10个空格:

>>> print '|{:6.3f}          |\n|{:6.3f}          |'.format(1, 10)
| 1.000          |
|10.000          |

不幸的是,在处理完所有输入之前,无法知道要在右侧填充多少空格。正如我在问题中提到的,我希望避免使用多种格式。这可能是我唯一的路线,但目前这并不能回答我的问题。如果您能提供证明这是解决此问题的唯一方法的参考资料,那么我将接受您的回答。@bheklillr您如何提供某个不存在的参考资料?我想这个答案已经很接近了。@bheklillr:虽然可以使用格式来提供参数,但不能格式化输出。@markransem您可以提供对一个规范的引用,该规范列出了什么是可能的,或者提供了一个说明为什么什么是不可能的。很容易找到“{:f”不是有效的格式说明符的文档,但是我找不到任何东西来说明为什么{:@bheklir:如果文档中没有,那么它是不允许的。