То, как увеличить значение с продвижением, обнуляет?

Мне кажется, что вы можете использовать кэширование, чтобы уменьшить количество обращений к базе данных и не беспокоиться о сохранении состояния.

11
задан Huuuze 25 February 2009 в 20:13
поделиться

6 ответов

Используйте пропущенный str.zfill многого ():

str(int(x) + 1).zfill(len(x))
27
ответ дан 3 December 2019 в 01:07
поделиться

% "%%0%ii" len (x) % (интервал (x) +1)

- MarkusQ

P.S. Для x = "0000034" это разворачивается как так:

"%%0%ii" % len("0000034") % (int("0000034")+1)
"%%0%ii" % 7 % (34+1)
"%07i" % 35
"0000035"
8
ответ дан 3 December 2019 в 01:07
поделиться

Сохраните свое число как целое число. Когда Вы захотите распечатать его, добавьте начальные нули. Таким образом, можно легко сделать математику без преобразований, и она упрощает мыслительный процесс.

1
ответ дан 3 December 2019 в 01:07
поделиться

По-видимому, Вы конкретно имеете в виду целое число, представленное как строка с начальными нулями?

Если это так, я сделал бы это таким образом:

>>> a
'00000000000000099'
>>> l = len(a)
>>> b = int(a)+1
>>> b
100
>>> ("%0"+"%dd" % l) % b
'00000000000000100'
2
ответ дан 3 December 2019 в 01:07
поделиться
int('00000001') + 1

если Вы хотите продвижение, обнуляет назад:

"%08g" % (int('000000001') + 1)
8
ответ дан 3 December 2019 в 01:07
поделиться

Определите длину, преобразуйте ее в целое число, увеличьте ее, затем преобразуйте ее назад в строку с начальными нулями так, чтобы она имела ту же длину как прежде.

1
ответ дан 3 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

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