Ошибки окружения в Python: ввод, импорт, файлы, рекурсия
Программа упирается в окружение, а не в собственную логику: закончился ввод, модуль не установлен или назван иначе, файла нет по указанному пути, рекурсия ушла слишком глубоко. Здесь же assert, остановка по Ctrl+C и исчерпанный итератор.
Свой трейсбек удобнее вставить в расшифровщик: он сам найдёт нужное сообщение и подставит имена из твоего кода в объяснение. Ниже — все сообщения семейства по порядку, у каждого постоянная ссылка.
Окружение: ввод, импорт, файлы, рекурсия 9
EOFError: EOF when reading a line
конец ввода при чтении строки
Программа вызвала input(), а строк ввода больше нет. В задачах с автопроверкой ввод заканчивается ровно там, где его описывает условие.
частые причины
input() вызван больше раз, чем строк в условии.
Лишний input() для «нажми Enter».
В песочнице без панели ввода input() читать нечего.
как починить
Читай ровно столько строк, сколько даёт условие. Несколько чисел в одной строке разбирай через split().
ModuleNotFoundError и ImportError: команда pip show имя_модуля покажет, установлен ли он. Убедись, что pip и python из одного окружения (python -m pip install), и что твой файл не называется как модуль, например random.py или requests.py.
FileNotFoundError: программа ищет файл относительно текущей папки, а не папки со скриптом. Напечатай os.getcwd() и строй путь от __file__, если файл лежит рядом со скриптом.
EOFError: input() вызван, когда ввод уже закончился. В тренажёрах и на проверке ввод конечный, поэтому читай ровно столько строк, сколько обещано в условии, и не вызывай input() в бесконечном цикле.
RecursionError: нет базового случая или он недостижим при таких данных. Для больших входов замени рекурсию циклом или явным стеком.
AssertionError сработала на твоей собственной проверке assert. KeyboardInterrupt означает Ctrl+C. StopIteration приходит от next() на исчерпанном итераторе: передай значение по умолчанию вторым аргументом.
Как читать трейсбек
Читай снизу вверх: последняя строка называет ошибку и объясняет её текстом.
Строка выше с File "...", line N показывает, где Python остановился. Для SyntaxError причина часто на строке выше указанной.
Стрелка ^ под кодом отмечает место, где разбор сломался.