How do I format a number with a variable number of digits in Python?

后端 未结 7 758
攒了一身酷
攒了一身酷 2020-12-07 12:23

Say I wanted to display the number 123 with a variable number of padded zeroes on the front.

For example, if I wanted to display it in 5 digits I would have digits =

相关标签:
7条回答
  • 2020-12-07 12:38

    If you are using it in a formatted string with the format() method which is preferred over the older style ''% formatting

    >>> 'One hundred and twenty three with three leading zeros {0:06}.'.format(123)
    'One hundred and twenty three with three leading zeros 000123.'
    

    See
    http://docs.python.org/library/stdtypes.html#str.format
    http://docs.python.org/library/string.html#formatstrings

    Here is an example with variable width

    >>> '{num:0{width}}'.format(num=123, width=6)
    '000123'
    

    You can even specify the fill char as a variable

    >>> '{num:{fill}{width}}'.format(num=123, fill='0', width=6)
    '000123'
    
    0 讨论(0)
  • 2020-12-07 12:39
    '%0*d' % (5, 123)
    
    0 讨论(0)
  • 2020-12-07 12:41

    Use string formatting

    print '%(#)03d' % {'#': 2}
    002
    print '%(#)06d' % {'#': 123}
    000123
    

    More info here: link text

    0 讨论(0)
  • 2020-12-07 12:42

    There is a string method called zfill:

    >>> '12344'.zfill(10)
    0000012344
    

    It will pad the left side of the string with zeros to make the string length N (10 in this case).

    0 讨论(0)
  • 2020-12-07 12:55

    For those who want to do the same thing with python 3.6+ and f-Strings this is the solution.

    width = 20
    py, vg = "Python", "Very Good"
    print(f"{py:>{width}s} : {vg:>{width}s}")
    
    0 讨论(0)
  • 2020-12-07 12:56
    print "%03d" % (43)
    

    Prints

    043

    0 讨论(0)
提交回复
热议问题