f字符串,多种格式说明符

问题描述 投票:0回答:4

是否可以在python f字符串中使用多种格式说明符?

例如,假设我们要将数字四舍五入到小数点后两位,并指定打印宽度。

单独看起来像这样:

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')

但是得到了Invalid format specifier error

python string-formatting
4个回答
1
投票

您想要

for v in values: print(f'{v:<10.2} value')

详细规则可在https://docs.python.org/3/library/string.html#formatstrings中找到。

标准格式说明符]的一般形式是:

format_spec

:: =[[fill] align] [sign] [#] [0] [width] [grouping_option] [。precision] [type]

对于您的情况,您需要[align]和[.precision]。


0
投票

是,但是您需要先指定宽度,然后再指定精度。逗号用于分隔成千上万,因此请不要在此处使用它:


0
投票

取决于您想要的结果,您可以将它们正常组合,例如;


0
投票

Python允许使用多种格式说明符。对此的详细讨论可以在https://www.python.org/dev/peps/pep-3101/

© www.soinside.com 2019 - 2024. All rights reserved.