在 Python 中修改格式化数字中的前导字符?

Modifying the leading character in a formatted number in Python?

我知道在 Python 3.6+ 中我们可以使用 f 字符串来格式化具有宽度和精度的数字:

f"{value:{width}.{precision}}"

所以我做了以下事情:

>>> print(f"My number: {31072021:015.1f}")
My number: 00000031072021.0

现在,如果我在 {width} 说明符中的 15 之前尝试没有 0 的相同代码,那么我会得到以下

>>> print(f"My number: {31072021:15.1f}")
My number:       31072021.0

现在,是否可以指定我自己的填充字符而不是默认的 space 或零 0 个字符?

感谢您的帮助!

是的,可以在 python 中添加您喜欢的填充字符,但不能单独使用格式字符串。为此,我们必须使用 rjust()

>>> s = f"{31072021:.1f}".rjust(15, 'a')
'aaaaa31072021.0'

>>> # same as: s="{:.1f}".format(31072021).rjust(15, "a")

>>> print("My number:", s)
My number: aaaaa31072021.0

在您的回答中,出现零 0 填充是因为前置零不会更改数字的值,因此无论它是否为 space 或零 0.