Im пытается написать функцию, которая подсчитывает количество цифр в числе - без операции string
. Вот мой код:Подсчет чисел без строковых операций
def count_digits(n):
count_list=[]
while (n>0):
n=n%10
i=n
count_list.append(i)
n=n/10
return len(count_list)
n=12345
print count_digits(n)
С помощью %
я получить последние цифры - для того, чтобы добавить его в список. Используя /
, я бросаю цифру из числа.
Сценарий не работает. Для каждого n
я положил, сценарий просто печатает 1
.
Спасибо!
В первый раз, когда n = n% 10, n уменьшается до значения от 0 до 9, независимо от его начального значения. – yotommy
Операция 'return' не имеет должным образом отступ. Он должен находиться вне цикла while. – mic4ael
Кроме того, сохранение 'count_list', когда вы могли бы просто использовать счетчик приращений, кажется глупым (только трюк заключается в том, что вы обрабатываете' 0' специально или используете несколько kludgy эквивалент Python 'do' /' while', чтобы избежать необходимо обращаться с ним специально). – ShadowRanger