Python & AI

@channel_pythonai
🎉 Разбор задачи: где прячется ошибка в коде на Python? 🎉 Привет, крутые разработчики! 😎 Вчера мы кинули вам задачку на внимательность — и сегодня разберём её по полочкам. 🤓 В чём была проблема? 🤔 Давай посмотрим на ключевые моменты: ✅ Функция работает нормально для обычного списка. Для `data = [10, 20, 30]` всё считается верно: сумма 60, длина 3, среднее — 20. 👍 ✅ А вот с пустым списком — проблема. Когда передаём `empty_data = []`, длина списка становится 0. ✅ Деление на ноль — это ошибка. В строке `average = total / len(numbers)` происходит попытка разделить число на 0, и Python выбрасывает исключение `ZeroDivisionError`. 💥 ✅ Программа падает. Вместо аккуратного результата пользователь видит трассировку ошибки — а в реальных проектах это может сломать весь скрипт. 😨 Как можно исправить? 💡 Есть два надёжных подхода: 📌 Вариант 1: проверка на пустой список (самый понятный) ✅ def calculate_average(numbers): if not numbers: # Если список пустой return 0 # Возвращаем 0 (или None — зависит от логики проекта) total = sum(numbers) average = total / len(numbers) return average Плюсы: сразу видно условие, легко читать и поддерживать. 👌 📌 Вариант 2: обработка исключения (более «питоновский» стиль) ✅ def calculate_average(numbers): try: total = sum(numbers) average = total / len(numbers) return average except ZeroDivisionError: return 0 Плюсы: чётко отделяет «нормальную логику» от обработки ошибок. 🛡 Какой вариант выбрать? 🤔 * Если пустая коллекция — это ожидаемая ситуация (например, пользователь ещё не ввёл данные), лучше Вариант 1. * Если ошибка — редкий случай и ты хочешь обрабатывать сразу несколько типов исключений, подойдёт Вариант 2. Какой подход тебе ближе? Напиши в комментариях — поболтаем про лучшие практики! 💬 Пройдите опрос и узнайте, какой курс обучения подходит именно вам на сайте: https://infazy.ru/podobrat-kurs-python или в боте https://t.me/kursypythonbot 🎓 #Python #Программирование #Практика #Coding #ЗадачиДляРазработчиков #ОбучениеПрограммированию #IT #РазборКода
Если у вас установлено приложение,
вы можете сразу перейти в канал