是否可以在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
您想要
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]。
是,但是您需要先指定宽度,然后再指定精度。逗号用于分隔成千上万,因此请不要在此处使用它:
取决于您想要的结果,您可以将它们正常组合,例如;
Python允许使用多种格式说明符。对此的详细讨论可以在https://www.python.org/dev/peps/pep-3101/