Python 3.6+如何用f-string实现浮点数格式化与居中填充
f-string 实现保留5位小数+居中对齐的方案
完全可以用单条f-string实现需求,你写的示例不符合f-string格式符的语法顺序,所以跑不通。
f-string的格式说明符必须按固定顺序书写:填充字符、对齐方式、总宽度要放在精度控制参数前面,顺序不能乱。
针对你的需求,正确代码如下:
num = 2451545.00000 print(f"{num: ^20.5f}")
运行后会输出总长度为20的字符串,内容2451545.00000居中,两侧填充空格。
- 格式符拆解:
- 第一个空格:指定填充字符为空格
^:指定对齐方式为居中20:指定输出总宽度为20.5f:指定按浮点数规则保留5位小数,和你用的%.5f效果完全一致
小提示:居中对齐的默认填充字符就是空格,所以上面的写法可以简写为
f"{num:^20.5f}",不需要显式写填充的空格,效果完全相同。
你之前尝试的.5{' '}^{20}写法问题在于把精度参数放在了最前面,打乱了格式符的顺序,而且不需要嵌套花括号传入填充、对齐参数,按顺序拼接格式符就可以实现效果。
内容的提问来源于stack exchange,提问作者Abedin
相关产品推荐
相关产品推荐

