Как я форматирую число с переменным количеством цифр в Python? [дубликат]

Этот вопрос уже имеет ответ здесь:

Скажите, что я хотел отобразиться, номер 123 с переменным количеством заполненных обнуляет на передней стороне.

Например, если бы я хотел отобразить его в 5 цифрах, то у меня были бы цифры = 5 предоставления меня:

00123

Если бы я хотел отобразить его в 6 цифрах, то у меня были бы цифры = 6 предоставления:

000123

Как я сделал бы это в Python?

57
задан Mateusz Piotrowski 12 March 2017 в 16:12
поделиться

5 ответов

Есть строковый метод под названием zfill:

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

Он заполняет левую часть строки нулями, чтобы длина строки стала N (10 в данном случае).

36
ответ дан 24 November 2019 в 19:11
поделиться

Если вы используете его в форматированной строке с методом 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'
160
ответ дан 24 November 2019 в 19:11
поделиться
print "%03d" % (43)

Печать

043

5
ответ дан 24 November 2019 в 19:11
поделиться

Использовать форматирование строки

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

Больше информации здесь: текст ссылки

1
ответ дан 24 November 2019 в 19:11
поделиться
'%0*d' % (5, 123)
18
ответ дан 24 November 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: