🎉 Разбор задачи дня: где скрывалась ошибка? 🎉
Спасибо всем, кто принял участие и поделился своими вариантами в комментариях — вы большие молодцы! 👏 Теперь давайте разберёмся, в чём была загвоздка.
🔍 Что не так с кодом:
- Проблема возникает при передаче в функцию `calculate_average` пустого списка — в нашем случае это переменная `empty_list`.
- При вызове `len(empty_list)` получится 0, а затем код попытается выполнить деление на ноль: `total / len(numbers)`.
- В Python это вызовет ошибку `ZeroDivisionError`, и программа аварийно завершится. 💥
💡 Как исправить:
1. Нужно добавить проверку на пустой список в начале функции.
2. Если список пуст — вернуть, например, `0` или специальное значение (вроде `None`), либо выбросить понятное исключение с сообщением.
✅ Пример исправленного кода:
def calculate_average(numbers):
if len(numbers) == 0:
return None # или 0, или raise ValueError("Список не должен быть пустым")
total = 0
for num in numbers:
total += num
return total / len(numbers)
data = [10, 20, 30]
result = calculate_average(data)
print("Среднее значение:", result)
empty_list = []
print(calculate_average(empty_list)) # Теперь вернёт None, а не вызовет ошибку
🤓 Почему это важно:
* Обработка краевых случаев (вроде пустых данных) — обязательный навык для любого разработчика.
* Такие проверки делают код надёжным и устойчивым к неожиданным входным данным. 💪
👉 Хотите научиться писать чистый и безопасный код, уверенно работать с исключениями и разбирать сложные кейсы? Пройдите короткий опрос и узнайте, какой курс обучения подходит именно вам:
🌐 На сайте: https://infazy.ru/podobrat-kurs-python
🤖 В боте: https://t.me/kursypythonbot
#Python #Программирование #Обучение #Код #РазборЗадач #Отладка #НавыкиРазработчика
Просмотры: 47