【问题标题】:Modifying the leading character in a formatted number in Python?在 Python 中修改格式化数字中的前导字符?
【发布时间】:2021-10-06 16:37:14
【问题描述】:

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

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

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

感谢您的帮助!

【问题讨论】:

  • 由于答案更通用并且包含更广泛兼容的格式字符串,将其更改为python而不是python 3.9.6不是明智之举
  • @Jo_L 感谢您的建议,我已经修改了问题。

标签: python python-3.x string-formatting number-formatting


【解决方案1】:

是的,可以在 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 填充,因为前置零不会更改数字的值,因此无论是空格 还是零 0,您都将拥有相同的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2010-10-05
    • 1970-01-01
    相关资源
    最近更新 更多