是否可以在Python string(https://en.wikipedia.org/wiki/Python_(programming_language%29#Expressions)?)中使用多种格式说明符?
例如,假设我们希望将数字集合到两个小数点,并为打印指定一个宽度。
单独看上去如下:
In [1]: values = [12.1093, 13.95123]
In [2]: for v in values: print(f'{v:.2}')
1.2e+01
1.4e+01
In [3]: for v in values: print(f'{v:<10} value')
12.1093 value
13.95123 value但是,有可能将两者结合起来吗?
我试过:
for v in values: print(f'{v:.2,<10} value')但我发现格式说明错误无效。
发布于 2020-01-24 05:55:28
取决于您想要的结果,您可以正常地组合它们,例如;
for v in values: print(f"{v:<10.2} value")
#1.2e+01 value
#1.4e+01 value然而,您的结果似乎不像您正在寻找的结果。
要强制使用2的固定表示法,需要添加f
for v in values: print(f"{v:<10.2f} value")
#12.11 value
#13.95 value您可以阅读有关格式规范这里的更多信息。
发布于 2020-01-24 05:53:13
你想要的
for v in values: print(f'{v:<10.2} value')详细规则可在https://docs.python.org/3/library/string.html#formatstrings中找到
标准格式说明符的一般形式是: format_spec ::= [fill]align#width.precision
对于你的情况,你想要对齐和.precision。
发布于 2020-01-24 05:55:01
是的,但您需要首先指定宽度,然后指定精度。逗号用于分隔数千个,所以这里不要使用它:
>>> for v in values: print(f'{v:<10.2} value')
1.2e+01 value
1.4e+01 valuehttps://stackoverflow.com/questions/59890977
复制相似问题