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

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


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'


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).