在 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
.
我知道在 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
.