assert condition, messageОстанавливает программу с AssertionError, если condition ложно.
Отладка начинается с воспроизводимого входа, ожидаемого результата и первого шага, где фактическое состояние отличается.
Отладка начинается с воспроизводимого входа, ожидаемого результата и первого шага, где фактическое состояние отличается.
Отладка — это не случайная перестановка строк. Сначала воспроизводят вход, затем находят первое состояние, которое нарушает контракт программы.
Синтаксис. Код не разбирается: пропущен символ, нарушен отступ или структура языка.
Выполнение. Код стартует, но получает исключение: ZeroDivisionError, IndexError, KeyError и другие.
Логика. Программа завершается, но результат нарушает условие.
Сложность. Решение верно на малом входе, но не проходит ограничение времени или памяти.
Запусти короткую программу и переходи по строкам. Визуализатор показывает только код, текущую строку, переменные и вывод.
Минимальный контрпример — самый простой вход, на котором ошибка воспроизводится. Он сокращает трассу и делает причину заметной. assert проверяет предположение прямо в коде: при ложном условии возникает AssertionError. Перед сдачей отладочный print и assert обычно удаляют, если формат вывода должен быть строгим.
assert condition, messageОстанавливает программу с AssertionError, если condition ложно.
len(values)Позволяет проверить размер данных.
enumerateПомогает печатать индекс и состояние в диагностической трассе.
printВременно показывает состояние; не оставляй лишний вывод в строгом формате.
try / exceptПерехватывает ожидаемое исключение, но не должен скрывать ошибку контракта.
maxВстроенный максимум; для ручной отладки полезно сравнить с собственным алгоритмом.
returnВозвращает результат для отдельного тестирования функции.