Formatted Integer With Specified Number Of Digits

Lawrence D’Oliveiro <[email protected]> Sun, 19 Oct 2025 07:26:44 -0000 (UTC)
Newsgroups comp.lang.python
Organization A noiseless patient Spider
Message-ID <[email protected]>
Formatting an integer with 3 digits, excluding base specifier:

    >>> "%#0.3x" % 2
    '0x002'

No equivalent to this in any of the other ways that Python allows for
formatting:

    >>> format(2, "#03x")
    '0x2'

    (Not what I want)

    >>> format(2, "#0.3x")
    Traceback (most recent call last):
      File "<python-input-10>", line 1, in <module>
        format(2, "#0.3x")
        ~~~~~~^^^^^^^^^^^^
    ValueError: Precision not allowed in integer format specifier

    >>> "{:#03x}".format(2)
    '0x2'

    (Not what I want)

    >>> "{:#0.3x}".format(2)
    Traceback (most recent call last):
      File "<python-input-13>", line 1, in <module>
        "{:#0.3x}".format(2)
        ~~~~~~~~~~~~~~~~~^^^
    ValueError: Precision not allowed in integer format specifier

Why not?