В этой статье мы разберем два способа посчитать, сколько цифр в числе. Первый способ предполагает использование целочисленного деления в цикле 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”.