Количество разрядов числа (Python)

Напишите цикл, который считает количество разрядов введенного с клавиатуры числа

В данном случае следует использовать математический способ решения задачи – путем
последовательного избавления от разрядов числа делением нацело на 10 в цикле.
Первое деление выносится за цикл потому, что если число равно нулю, то цикл while его не
обработает и счетчик цифр count останется равным нулю.

n = int(input())
n = abs(n)

count = 1
n //= 10

while n > 0:
    n //= 10
    count += 1
print(count)

Пример выполнения:

-123
3

Однако случай введения числа 0 можно обработать и через if:

if n == 0:
    count = 1

Обратим внимание, что если число оканчивается на 0, например 150, программа работает
правильно, так как от разрядов числа избавляются с конца, а не с начала. Первое деление нацело
учтет цифру 0 в счетчике count.
Если же перед числом поставить 0, например 015, программа насчитает 2 разряда, так как
проверка n > 0 вернет ложь, когда от числа останется одна первая цифра.

Оцените статью
( 1 оценка, среднее 4 из 5 )