Отладка как научный метод
Как перестать менять код наугад и локализовать дефект.
1. Запишите наблюдаемый результат и ожидаемый результат.
2. Получите минимальный воспроизводимый пример.
3. Разделите систему пополам и найдите границу, где данные становятся неверными.
4. Сформулируйте одну проверяемую гипотезу.
5. Измените один фактор и повторите.
Сохраняйте полный traceback. Проверяйте типы, границы, код возврата и журналы. После исправления добавьте тест, который раньше падал.