Проверка кода и поиск ошибки
«Код работает» не значит «код верен». Для проверки заранее запишите примеры и сравните результат. В 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). В чём ошибка?
Ответ и пояснение
range(n)идёт от 0 до n-1: для 1..n нуженrange(1, n + 1). (верный ответ)последнее значение не включается, а начало — 0.rangeработает только с чётными числами.такого ограничения нет.- Ошибки нет, код верный.результат будет отличаться на единицу.
Упражнения с кодом
- Функция
yigindi(n)должна считать сумму чисел от 1 до n, но выдаёт неверный результат. Найдите ошибку и исправьте.
Подсказка:range(n)идёт от 0 до n-1. Для 1..n нуженrange(1, n + 1). - Сделайте так, чтобы
ortacha([])не вызывала ошибку: для пустого списка пусть возвращается 0. Остальные случаи не меняйте.
Подсказка: В начале функции проверьте пустоту:if not royxat:иreturn 0.
Выполните упражнение в приложении.
Практическое задание
Для одной из функций прошлых уроков напишите 3 assert (один — для граничного случая) и запустите их.
- Написал 3 assert
- Один — для граничного случая
Словарь
Интерактивный режим: поиск, прогресс и упражнения на Python.
