Как поместить строку с ведущими нулями в Python 3

Я пытаюсь сделать length = 001 в Python 3, но всякий раз, когда я пытаюсь распечатать его, он обрезает значение без начальных нулей (length = 1). Как я мог бы прекратить это делать, не откладывая length до строки перед ее печатью?

Ответ 1

Используйте вспомогательный метод zfill() для добавления левой строки любой строки, целого числа или числа с плавающей запятой с нулями; он действителен как для Python 2.x, так и для Python 3.x.

Пример использования:

print str(1).zfill(3);
# Expected output: 001

Описание:

При применении к значению zfill() возвращает значение, дополненное левыми полями нулями, когда длина начального строкового значения меньше длины примененного значения ширины, в противном случае начальное строковое значение как есть.

Синтаксис:

str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.

Ответ 2

Начиная с python 3.6 вы можете использовать fstring:

>>> length = 1
>>> print(f'length = {length:03}')
length = 001

Ответ 3

Целочисленные числа Python не имеют собственной длины или количества значащих цифр. Если вы хотите, чтобы они печатались определенным образом, вам нужно преобразовать их в строку. Есть несколько способов сделать это, чтобы вы могли указывать такие элементы, как пробельные символы и минимальные длины.

Чтобы заполнить нулями как минимум тремя символами, попробуйте:

length = 1
print(format(length, '03'))

Ответ 4

Есть много способов добиться этого, но самый простой способ в Python 3. 6+, по моему мнению, таков:

print(f"{1:03}")

Ответ 5

Я предлагаю этот уродливый метод, но он работает:

length=1
lenghtafterpadding=3
newlength='0'*(lengthafterpading-len(str(length))+str(length)

Я пришел сюда, чтобы найти более легкое решение, чем это!