Справочник · модуль 16 «Нейросети для программиста»
Проверка тестами
Код от нейросети проверяй тестами, особенно на крайних случаях: пустой список, ноль, один элемент. «Запустился» не значит «работает верно».
Сравнение из жизни
Как проверить мост нагрузкой, а не взглядом.
Пример
Запустилась, но упала на пустом списке
def average(numbers):
return sum(numbers) / len(numbers)
print(average([]))Traceback (most recent call last):
File "main.py", line 5, in <module>
print(average([]))
~~~~~~~^^^^
File "main.py", line 2, in average
return sum(numbers) / len(numbers)
~~~~~~~~~~~~~^~~~~~~~~~~~~~
ZeroDivisionError: division by zeroУчитель в уроке Дадим пустой список. Функция упала: деление на ноль. Нейросеть не подумала про крайний случай. Запомни: «запустилось» не значит «верно». Особенно проверяй крайние случаи: пустой список, ноль, один элемент.
Коротко: проверяй ответ нейросети
- Прочитай код: что делает каждая строчка?
- Запусти на примере из запроса
- Проверь крайние случаи: пусто, ноль, один
- Команда незнакомая? Найди её в документации
Запомнить
Проверка тестами — как проверить мост грузом, а не на глаз. Запустилось — ещё не значит верно.
Частые ошибки новичков на этой теме
Кажется: Код от нейросети верный, раз он запустился
На самом деле: Запустился — не значит работает правильно. Проверяй тестами, особенно крайние случаи.
Тема из урока 16.2 «Проверяем ответ ИИ» курса PythonAZ.