Как поместить строку с ведущими нулями в 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)
Я пришел сюда, чтобы найти более легкое решение, чем это!