首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >f-string,多格式说明符

f-string,多格式说明符
EN

Stack Overflow用户
提问于 2020-01-24 05:45:05
回答 4查看 7.3K关注 0票数 7

是否可以在Python string(https://en.wikipedia.org/wiki/Python_(programming_language%29#Expressions)?)中使用多种格式说明符?

例如,假设我们希望将数字集合到两个小数点,并为打印指定一个宽度。

单独看上去如下:

代码语言:javascript
复制
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

但是,有可能将两者结合起来吗?

我试过:

代码语言:javascript
复制
for v in values: print(f'{v:.2,<10} value')

但我发现格式说明错误无效。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-01-24 05:55:28

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

代码语言:javascript
复制
for v in values: print(f"{v:<10.2} value")

#1.2e+01    value
#1.4e+01    value

然而,您的结果似乎不像您正在寻找的结果。

要强制使用2的固定表示法,需要添加f

代码语言:javascript
复制
for v in values: print(f"{v:<10.2f} value")

#12.11      value
#13.95      value

您可以阅读有关格式规范这里的更多信息。

票数 5
EN

Stack Overflow用户

发布于 2020-01-24 05:53:13

你想要的

代码语言:javascript
复制
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。

票数 10
EN

Stack Overflow用户

发布于 2020-01-24 05:55:01

是的,但您需要首先指定宽度,然后指定精度。逗号用于分隔数千个,所以这里不要使用它:

代码语言:javascript
复制
>>> for v in values: print(f'{v:<10.2} value')
1.2e+01    value
1.4e+01    value
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59890977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档