Этот вопрос уже имеет ответ здесь:
Скажите, что я хотел отобразиться, номер 123 с переменным количеством заполненных обнуляет на передней стороне.
Например, если бы я хотел отобразить его в 5 цифрах, то у меня были бы цифры = 5 предоставления меня:
00123
Если бы я хотел отобразить его в 6 цифрах, то у меня были бы цифры = 6 предоставления:
000123
Как я сделал бы это в Python?
Есть строковый метод под названием zfill:
>>> '12344'.zfill(10)
0000012344
Он заполняет левую часть строки нулями, чтобы длина строки стала N (10 в данном случае).
Если вы используете его в форматированной строке с методом format ()
, который предпочтительнее старого стиля ''%
форматирования
>>> 'One hundred and twenty three with three leading zeros {0:06}.'.format(123)
'One hundred and twenty three with three leading zeros 000123.'
См.
http: //docs.python.org/library/stdtypes.html#str.format
http://docs.python.org/library/string.html#formatstrings
Вот пример с переменной шириной
>>> '{num:0{width}}'.format(num=123, width=6)
'000123'
Вы даже можете указать символ заполнения как переменную
>>> '{num:{fill}{width}}'.format(num=123, fill='0', width=6)
'000123'
Использовать форматирование строки
print '%(#)03d' % {'#': 2}
002
print '%(#)06d' % {'#': 123}
000123
Больше информации здесь: текст ссылки