В этой статье мы разберем два способа посчитать, сколько цифр в числе. Первый способ предполагает использование целочисленного деления в цикле while. Второй — применение встроенных функций Python и преобразование числа в строку.
Считаем количество цифр в числе при помощи цикла while
Идея данного подхода состоит в том, чтобы удалять крайнюю правую цифру в числе до тех пор, пока число не станет равно 0.
Вот алгоритм этого метода:
- Получаем от пользователя число и записываем его в переменную
- Создаем переменную-счетчик и инициализируем ее значением 0
- При помощи цикла
whileудаляем крайнюю правую цифру (123 превращается в 12, потом в 1 и потом в 0) - При каждой итерации цикла увеличиваем значение счетчика на 1 и делаем это, пока исходное число не будет равно 0. В конечном итоге в переменной-счетчике будет содержаться значение, соответствующее количеству цифр в числе
- Выводим полученное значение в консоль
count = 0
number = int(input("Enter a number "))
while (number > 0):
number = number // 10
count = count + 1
print("Total number of digits: ", count)
# Результат:
# Enter a number 155
# Total number of digits: 3
Объяснение алгоритма:
- Данный код полностью идентичен алгоритму, который мы привели выше.
count— это переменная-счетчик, используемая для хранения общего количества цифр в числе. Она инициализируется в начале нулем. - Для ввода числа мы используем метод
input(). Данный метод возвращает строку, поэтому мы оборачиваем его в методint(), который преобразует ее в целое число. Оно сохраняется в переменнуюnumber. - Цикл
whileбудет выполняться до тех пор, пока значение переменнойnumberбольше нуля. - В теле цикла мы производим целочисленное деление числа, которое хранится в переменной number, на 10. И далее сохраняем в эту переменную новое число, полученное в результате такого деления. Если значение переменной было равно 123, то после целочисленного деления на 10 оно станет равно 12. Это полностью эквивалентно удалению крайней правой цифры числа.
- После этого мы увеличиваем значение счетчика (переменная
count) на 1. В конце концов исходное число в переменнойnumberстанет равно 0 и цикл прекратит свою работу. - Выводим значение переменной count в консоль.
Считаем, сколько цифр в числе, преобразовав его в строку
Вместо использования цикла while мы можем напрямую преобразовать целое число в строку и получить длину этой строки. В Python получить длину строки легко с помощью встроенного метода len(). Для преобразования числа в строку мы можем использовать метод str().
Встроенная функция abs() используется для получения абсолютного значения числа, то есть наша программа будет обрабатывать и тот случай, когда число будет отрицательным.
Допустим, наше входное значение равно -123. Функция abs() преобразует его в 123, функция str() конвертирует 123 в строку. После этого функция len() возвращает длину строки, то есть значение 3.
Код программы на Python:
count = 0
number = int(input("Enter a number "))
print("Total number of digits: ", len(str(abs(number))))
# Результат:
# Enter a number 123
# Total number of digits: 3
Примечание редакции: возможно, вас также заинтересует статья «Как разбить число на цифры в Python».
Перевод статьи «Count number of digits in a number in Python».

Здравствуйте,
а как сделать так, чтобы в первом случае (с циклом while) при вводе 0 тоже бы сообщалось, что здесь одна цифра?