Как мне дополнить строку нулями?
Как мне дополнить числовую строку нулями слева, чтобы строка имела определенную длину?
Переведено автоматически
Ответ 1
Для дополнения строк:
>>> n = '4'>>> print(n.zfill(3))004
Для дополнения чисел:
>>> n = 4>>> print(f'{n:03}') # Preferred method, python >= 3.6004>>> print('%03d' % n)004>>> print(format(n, '03')) # python >= 2.6004>>> print('{0:03d}'.format(n)) # python >= 2.6 + python 3004>>> print('{foo:03d}'.format(foo=n)) # python >= 2.6 + python 3004>>> print('{:03d}'.format(n)) # python >= 2.7 + python3004
Документация по форматированию строк.
Ответ 2
Просто используйте rjust метод объекта string .
rjust
В этом примере создается строка длиной 10 символов, дополняемая по мере необходимости:
>>> s = 'test'>>> s.rjust(10, '0')>>> '000000test'
Ответ 3
Кроме того, zfill вы можете использовать общее форматирование строки:
zfill
print(f'{number:05d}') # (since Python 3.6), orprint('{:05d}'.format(number)) # orprint('{0:05d}'.format(number)) # or (explicit 0th positional arg. selection)print('{n:05d}'.format(n=number)) # or (explicit `n` keyword arg. selection)print(format(number, '05d'))
Документация по форматированию строк и f-строкам.
Ответ 4
Для Python 3.6+ с использованием f-strings:
>>> i = 1>>> f"{i:0>2}" # Works for both numbers and strings.'01'>>> f"{i:02}" # Works only for numbers.'01'
Для Python 2.6 до Python 3.5:
>>> "{:0>2}".format("1") # Works for both numbers and strings.'01'>>> "{:02}".format(1) # Works only for numbers.'01'
Этими стандартными спецификаторами формата являются [[fill]align][minimumwidth] и [0][minimumwidth].
[[fill]align][minimumwidth]
[0][minimumwidth]