Замените индексный цикл на 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.