Самый хороший способ дополнить нулями строку

Сначала я думал, что вы можете использовать регулярные выражения, но поскольку я читал документы MYSQL , похоже, вы не можете. Если бы я был вами, я бы использовал другой язык (например, PHP) для создания списка столбцов, который вы хотите получить, сохраните его как строку, а затем используйте для генерации SQL.

1204
задан kmario23 5 May 2019 в 01:26
поделиться

5 ответов

Строки:

>>> n = '4'
>>> print(n.zfill(3))
004

И для чисел:

>>> n = 4
>>> print('%03d' % n)
004
>>> print(format(n, '03')) # python >= 2.6
004
>>> print('{0:03d}'.format(n))  # python >= 2.6
004
>>> print('{foo:03d}'.format(foo=n))  # python >= 2.6
004
>>> print('{:03d}'.format(n))  # python >= 2.7 + python3
004
>>> print('{0:03d}'.format(n))  # python 3
004
>>> print(f'{n:03}') # python >= 3.6
004

Строковая документация форматирования .

1985
ответ дан ShadowRanger 5 May 2019 в 01:26
поделиться

Просто используйте крик метод строкового объекта.

Этот пример будет делать строку 10 символов в длину, дополняя по мере необходимости.

>>> t = 'test'
>>> t.rjust(10, '0')
>>> '000000test'
311
ответ дан twasbrillig 5 May 2019 в 01:26
поделиться

Кроме того zfill, можно использовать общее строковое форматирование:

print(f'{number:05d}') # (since Python 3.6), or
print('{:05d}'.format(number)) # or
print('{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'))

Документация для строка, форматирующая и струны фа .

96
ответ дан norok2 5 May 2019 в 01:26
поделиться
width = 10
x = 5
print "%0*d" % (width, x)
> 0000000005

См. документацию печати для всех захватывающих деталей!

Обновление для Python 3.x (7.5 лет спустя)

, Что последняя строка должна теперь быть:

print("%0*d" % (width, x))

Т.е. print() теперь функция, не оператор. Обратите внимание, что я все еще предпочитаю Старый стиль Школы printf(), потому что, IMNSHO, он читает лучше, и потому что, гм, я использовал ту нотацию с января 1980. Что-то... старые собаки.. что-то что-то... новые приемы.

17
ответ дан Peter Rowell 5 May 2019 в 01:26
поделиться

При использовании >= Python 3.6 самый чистый путь состоит в том, чтобы использовать струны фа с строка, форматирующая :

>>> s = f"{1:08}"  # inline
>>> s
'00000001'
>>> n = 1
>>> s = f"{n:08}"  # int variable
>>> s
'00000001'
>>> c = "1"
>>> s = f"{c:0>8}"  # str variable
>>> s
'00000001'
2
ответ дан ruohola 29 August 2019 в 16:06
поделиться
Другие вопросы по тегам:

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