В Python, как указать формат при преобразовании int в строку?

В Python, как я могу указать формат при преобразовании int в строку?

Точнее, я хочу, чтобы мой формат добавлял ведущие нули, чтобы иметь строку с постоянной длиной. Например, если для постоянной длины установлено значение 4:

  • 1 будет преобразован в "0001"
  • 12 будет преобразован в "0012"
  • 165 будет преобразован в "0165"

У меня нет ограничений на поведение, когда целое число больше, чем может позволить указанную длину (9999 в моем примере).

Как я могу это сделать в Python?

Ответ 1

"%04d", где 4 - постоянная длина, сделает то, что вы описали.

Вы можете прочитать о форматировании строки здесь.

Ответ 2

Вы можете использовать функцию zfill класса str. Так же -

>>> str(165).zfill(4)
'0165'

Можно также сделать %04d и т.д., как и другие. Но я думал, что это более питонический способ сделать это...

Ответ 4

Используйте оператор процента (%):

>>> number = 1
>>> print("%04d") % number
0001
>>> number = 342
>>> print("%04d") % number
0342

Документация здесь

Преимущество использования % вместо zfill() заключается в том, что вы разбираете значения в строке более разборчивым способом:

>>> number = 99
>>> print("My number is %04d to which I can add 1 and get %04d") % (number, number+1)
My number is 0099 to which I can add 1 and get 0100