AI Ustoz UZ: изучайте искусственный интеллект на узбекском языке

Проверка кода и поиск ошибки

Средний уровень · урок 3 · около 14 мин

«Код работает» не значит «код верен». Для проверки заранее запишите примеры и сравните результат. В Python assert условие вызывает ошибку, если условие ложно: удобно для небольших тестов.

def kvadrat(son):
    return son * son

assert kvadrat(3) == 9
assert kvadrat(-2) == 4
assert kvadrat(0) == 0
print("hamma testlar otdi")
Результатhamma testlar otdi

Типичные ошибки: ошибка на единицу (range(n) идёт от 0 до n-1, а range(1, n + 1) — от 1 до n) и пустой вход (среднее по пустому списку приводит к делению на ноль). Такие ошибки встречаются и в коде, написанном искусственным интеллектом.

Найдя ошибку, воспроизведите её на одном маленьком примере, установите причину и исправьте только это место. Затем заново проверьте все примеры: исправление не должно ломать другое.

Запомните

  • Примеры записывайте заранее; проверяйте через assert.
  • Типичные ошибки: ошибка на единицу и пустой вход.
  • После исправления перепроверьте все примеры.

Упражнение

Вы хотите перебрать числа от 1 до n через range(n). В чём ошибка?

Ответ и пояснение
  1. range(n) идёт от 0 до n-1: для 1..n нужен range(1, n + 1). (верный ответ)последнее значение не включается, а начало — 0.
  2. range работает только с чётными числами.такого ограничения нет.
  3. Ошибки нет, код верный.результат будет отличаться на единицу.

Упражнения с кодом

  1. Функция yigindi(n) должна считать сумму чисел от 1 до n, но выдаёт неверный результат. Найдите ошибку и исправьте.
    Подсказка: range(n) идёт от 0 до n-1. Для 1..n нужен range(1, n + 1).
  2. Сделайте так, чтобы ortacha([]) не вызывала ошибку: для пустого списка пусть возвращается 0. Остальные случаи не меняйте.
    Подсказка: В начале функции проверьте пустоту: if not royxat: и return 0.

Выполните упражнение в приложении.

Практическое задание

Для одной из функций прошлых уроков напишите 3 assert (один — для граничного случая) и запустите их.

  • Написал 3 assert
  • Один — для граничного случая

Словарь

Интерактивный режим: поиск, прогресс и упражнения на Python.