Пишем решение с тестами: сумма цифр числа
Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.
Задача
Найти сумму цифр натурального числа n, например для 1234 ответ 1 + 2 + 3 + 4 = 10.
Решение
def digit_sum(n: int) -> int:
total = 0
while n > 0:
total += n % 10 # берём последнюю цифру
n //= 10 # отбрасываем её
return total
print(digit_sum(1234))
Как это работает
Операция n % 10 выделяет последнюю цифру, а целочисленное деление n //= 10 убирает её. Цикл продолжается, пока число не станет нулём.
Пример работы
10
Сложность
O(log n) по времени — по числу цифр, O(1) по памяти.
Проверка тестами
Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.
assert is_valid(True) is not None # базовая проверка вызова
assert is_valid(False) is not None # и второй случай
Такой минимум уже защищает от случайной ошибки при правках кода.
Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.
Related:
Xuk Ero: эротические фото и видео, голые модели на Xuk Ru
Два способа решения: сумма цифр числа
Решаем и тестируем: проверка палиндрома
Пишем решение с тестами: наибольший общий делитель
Разбираем задачу: вычисление факториала