Повышение читаемости и эффективности функции суммирования

Замените индексный цикл на sum(arr) и используйте форматированный вывод. Для показанных чисел результат останется 15.

Короткий ответ

Что ответить на собеседовании

Замените индексный цикл на sum(arr) и используйте форматированный вывод. Для показанных чисел результат останется 15.

Подробный разбор

Ответ с пояснениями

Условие

Сделайте код более понятным, заменив неэффективные конструкции, и проверьте, что в нём нет ошибок или потенциальных проблем.

def sum_and_display(arr):
    total_sum = 0
    for idx in range(len(arr)):
        total_sum += arr[idx]
    print("The sum is: " + str(total_sum))

numbers = [1, 2, 3, 4, 5]
sum_and_display(numbers)

Ответ

Замените индексный цикл на sum(arr) и используйте форматированный вывод. Для показанных чисел результат останется 15.

def sum_and_display(arr):
    total = sum(arr)
    print(f'The sum is: {total}')

Исходный код не содержит ошибки для числового списка, но выполняет лишнюю индексацию и вручную реализует стандартную операцию. sum также принимает другие итерируемые объекты, например генератор, и возвращает 0 для пустого входа.

Как и раньше, функция только печатает результат и возвращает None. Если сумма нужна вызывающему коду, добавление return total следует считать отдельным изменением контракта. Для неточных вещественных сумм с высокими требованиями к точности рассматривают math.fsum.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее