КурсыИИМатематикаКодФизикаО проекте и вопросы

TwiddleLab / Код / Строим на Python

Отладка как детектив

Урок 8 из 12 · 7 мин · Бесплатно, без аккаунта

Что ты узнаешь

  • Логическая ошибка даёт неверный ответ без красного сообщения.
  • Отладка печатью: напечатай значения в нужном месте и сравни с тем, какими они должны быть.
  • Начни с гипотезы, потом проверь её. Баг сидит между последним верным значением и первым неверным.
  • Сначала проверь середину и дели пополам дальше: несколько зондов находят баг в длинной программе.

Начать урок

Как идёт урок

  1. Красной ошибки нет. Игра просто говорит, что твоё среднее 0.

    Запусти и посмотри на вывод.

  2. Где, по-твоему, прячется баг?

    Нажми на подозрительную строку. Можно наугад.

  3. Проверь зондами.

    Перетащи зонд в промежуток. Он печатает значения в этом месте рядом с тем, какими они должны быть.

  4. Как отлаживают детективы.

    Логическая ошибка это баг без сообщения об ошибке: программа работает и даёт неверный ответ.

    Отладка печатью: вставь print(...) между строками, чтобы увидеть значения прямо там. Зонд здесь ровно это.

    Начни с гипотезы, потом проверь. Баг между последним верным значением и первым неверным. Проверка середины и деление пополам находят его быстро.

  5. Меньше всего зондов: программа на 12 строк с одним багом.

    Сумма покупок должна быть 28, а печатается 33. Максимум четыре зонда. Норма 3.

  6. Теперь исправь среднее.

    Нажми на неверную часть строки 4, выбери исправление и нажми «Запуск».

  7. Сложи числа от 1 до 10. Должно быть 55. А выходит 45.

    Двигай конечное число range, пока сумма не станет верной.

  8. Это написал ИИ-помощник. Он говорит, что проверил.

    is_even(4) должно быть True, а is_even(7) False. Запусти и исправь.

  9. Зонды уже стоят. Какая строка виновата?

    Должно печататься True: среднее 22 больше 21.

  10. Разложи дела.

    Брось каждый пойманный сегодня баг в его папку.

Предыдущий урок: Считаем словарём · Следующий урок: Функции, которые вызывают функции · Часть курса: Строим на Python

Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.

Loading TwiddleLab