我有一个号码是1234567.12.我试着把它放在20个小数点的中间,用3个小数点,逗号作为分隔符,用*填充左右两边.我是这么做的:(Python3.11)

value = 1234567.12
y = f'{value:,.3f}'
x = f'{y:*^20}'

这也相当于:

x = f'{f"{value:,.3f}":*^20}'

有没有更干净的语法?

推荐答案

根据format mini-language的规格:

format_spec     ::=  [[fill]align][sign]["z"]["#"]["0"][width][grouping_option]["."precision][type]

您可以将fill(*)、align(^)和width(20)放在grouping_option(,)之前:

x = f'{value:*^20,.3f}'

Python-3.x相关问答推荐

确定字符串的长度并提取前15或14个字符

小部件padx和包方法ipadx有什么不同?

按一列分组,如果日期列相同,则在数字列中填写缺少的值

我无法直接在 VSCode 中运行该程序,但可以使用 VScode 中的终端运行它

如何将日期时间索引写入日期类型的表?

计算文档中所有关键字(单词和多词)出现的频率

如何通过 python 使用 auth no priv 获取 SNMPv3?

来自嵌套字典的完整地址

为什么 numpy 的 `np.char.encode` 会将一个空的 unicode 数组变成一个空的 `float64` 数组?

通过最接近的匹配合并两个不同长度的列上的两个数据框

排队多个子进程

错误:预期语句,发现 py:Dedent

Python:遍历子列表

Python 解包运算符 (*)

创建集合的 Python 性能比较 - set() 与 {} 文字

0 是 0 == 0(#evaluates 为真?)

有没有一种标准方法来确保 python 脚本将由 python2 而不是 python3 解释?

什么是ANSI_X3.4-1968编码?

为什么异步库比这个 I/O 绑定操作的线程慢?

Python:如何在 Windows 资源管理器中打开文件夹(Python 3.6.2、Windows 10)