Разработайте функцию number_length
, которая принимает одно целое число и возвращает его длину без учёта знака.
Примечание
Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.
Пример
Ввод
result = number_length(12345)
Вывод
result = 5
Ввод
result = number_length(-100500)
Вывод
result = 6
Решение
Два варианта решения: вычисление длины через деление и через перевод в строку.
Посмотреть код
Решение
Python
def number_length(number):
length = 0 if number != 0 else 1
while number != 0:
number = int(number / 10)
length += 1
return length
Решение
Python
def number_length(number):
return len(str(abs(number)))
Добрый день!
Написал решение аналогичное вашему варианту 1, на последнем примере выдает ошибку.
Копирование и вставка непосредственно вашего кода проблему не решило.
Добавление строки:
number = abs(number)
проблему также не решило.
Почему-то не пропускает хэндбук это решение.
Со вторым вариантом решения проблемы нет.
Раньше в тестах не было проверки на число 0.
Судя по всему яндекс все-таки взялся за написание более качественных тестов к задачам и теперь такой тест добавили.
Изначальный алгоритм, в случае, если ему передать 0 говорил, что длина числа – 0. Но на самом деле – 1. Проблема решается дополнительной проверкой в самом начале.
Спасибо, что обратили внимание.