nochangez
@nochangez

Как допустить запись нескольких нулей перед неравным нулю числом?

Здравствуйте. Никак не могу найти, как осуществить такое:

У меня есть строка, допустим
s_num = '0001'
Мне нужно перевести эту переменную в числовое значение без потери нулей:
int(s_num) # 0001 как полноценное число, с которым можно работать, но при такой записи сбрасываются нули

Например, мне к нему надо прибавить число 1:
int(s_num) + 1 # мне нужно получить число 0002
Подскажите, как можно сделать это?
  • Вопрос задан
  • 1091 просмотр
Решения вопроса 2
@ishmatov_rus
s_num = "0001"
s = str(int(s_num) + 1).zfill(len(s_num))
print(s)
Ответ написан
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
В python есть специальная функция (или, наверно, метод?) zfill(), предназначенная именно для дополнения строки до нужной длины нулями слева. Т.е. при выводе легко восстановить нужную длину печатаемого числа, превратив его в строку и напустив на него zfill(кол-во знаков, до которого надо добить нулями).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@galaxy
Нельзя. Да и какой в этом смысл?
Если вам нужно отобразить это число с нулями, то "%04d" % s_num после любых арифметических операций.
Ответ написан
@sunsexsurf
IT & creative
какая-то задача из вакуума. Но, положим, я бы сделал так:
1/ посчитал бы количество нулей с начала строки.
2/ отрезал бы их и превратил оставшееся число в инт
3/ сложил-уножил-поделил-чего там еще
4/ перевел бы результат обратно в строку
5/ добавил то, количество нулей, которое получил бы в п.1
5-1/ если нужно сократить нули при переходе через порядок (единицы - десятки - сотни и т.д.), то написал бы что-то вроде цикла, который смотрит, сколько раз число разделилось на 10 нацело. и потом на это число уменьшал бы количество нулей из п.1
Ответ написан
@AlexBoss
Почему бы просто не посмотреть len(a), перевести в int, совершить все нужные операции и далее сделать rjust?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы