// инструмент
Расшифровщик ошибок Python
Вставь трейсбек или последнюю строку ошибки: получишь перевод, что она значит, частые причины и починку с примером кода.
примеры:
Разбор идёт в браузере: текст ошибки и код никуда не отправляются.
Каталог: 82 сообщения в четырёх семействах
У каждого семейства своя страница с переводом, причинами и починкой каждого сообщения. Ниже полный указатель: нажми на сообщение, чтобы открыть его разбор.
SyntaxError, IndentationError, TabError
Имена, типы и вызовы: NameError, TypeError, AttributeError 29 сообщенийNameError, UnboundLocalError, TypeError, AttributeError
Данные: IndexError, KeyError, ValueError, ZeroDivisionError 12 сообщенийIndexError, KeyError, ValueError, ZeroDivisionError
Окружение: ввод, импорт, файлы, рекурсия 9 сообщенийEOFError, RecursionError, ModuleNotFoundError, ImportError, FileNotFoundError, KeyboardInterrupt, StopIteration, AssertionError
До запуска: SyntaxError, IndentationError, TabError
- SyntaxError: invalid syntax. Perhaps you forgot a comma?
- SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
- SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
- SyntaxError: unterminated string literal (detected at line 3)
- SyntaxError: unterminated triple-quoted string literal (detected at line 12)
- SyntaxError: invalid character '«' (U+00AB)
- SyntaxError: invalid non-printable character U+00A0
- SyntaxError: expected 'except' or 'finally' block
- SyntaxError: expected ':'
- SyntaxError: '(' was never closed
- SyntaxError: unmatched ')'
- SyntaxError: closing parenthesis ']' does not match opening parenthesis '('
- SyntaxError: f-string: single '}' is not allowed
- SyntaxError: f-string: expecting '}'
- SyntaxError: f-string: invalid syntax
- SyntaxError: f-string: invalid conversion character: expected 's', 'r', or 'a'
- SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?
- SyntaxError: cannot assign to function call here. Maybe you meant '==' instead of '='?
- SyntaxError: unexpected character after line continuation character
- SyntaxError: 'return' outside function
- SyntaxError: 'break' outside loop
- SyntaxError: invalid decimal literal
- SyntaxError: leading zeros in decimal integer literals are not permitted
- SyntaxError: unexpected EOF while parsing
- SyntaxError: invalid syntax
- SyntaxError (семейство целиком)
- IndentationError: unexpected indent
- IndentationError: expected an indented block after 'if' statement on line 3
- IndentationError: expected an indented block after function definition on line 1
- IndentationError: unindent does not match any outer indentation level
- IndentationError (семейство целиком)
- TabError (семейство целиком)
Имена, типы и вызовы: NameError, TypeError, AttributeError
- NameError: name 'total' is not defined
- NameError (семейство целиком)
- UnboundLocalError: cannot access local variable 'count' where it is not associated with a value
- TypeError: 'int' object is not iterable
- TypeError: argument of type 'int' is not iterable
- TypeError: 'int' object is not subscriptable
- TypeError: 'int' object is not callable
- TypeError: unsupported operand type(s) for +: 'int' and 'str'
- TypeError: can only concatenate str (not "int") to str
- TypeError: '<' not supported between instances of 'str' and 'int'
- TypeError: greet() missing 1 required positional argument: 'name'
- TypeError: greet() takes 1 positional argument but 2 were given
- TypeError: object of type 'int' has no len()
- TypeError: list indices must be integers or slices, not str
- TypeError: string indices must be integers, not str
- TypeError: 'str' object cannot be interpreted as an integer
- TypeError: int() argument must be a string, a bytes-like object or a real number, not 'list'
- TypeError: must be str or None, not tuple
- TypeError: sequence item 0: expected str instance, int found
- TypeError: Value after * must be an iterable, not int
- TypeError: 'list' object is not an iterator
- TypeError: can't multiply sequence by non-int of type 'str'
- TypeError: unhashable type: 'list'
- TypeError: 'str' object does not support item assignment
- TypeError (семейство целиком)
- AttributeError: 'NoneType' object has no attribute 'append'
- AttributeError: module 'math' has no attribute 'sqr'
- AttributeError: 'list' object has no attribute 'push'
- AttributeError (семейство целиком)
Данные: IndexError, KeyError, ValueError, ZeroDivisionError
- IndexError: list index out of range
- IndexError: pop from empty list
- IndexError (семейство целиком)
- KeyError: 'age'
- ValueError: invalid literal for int() with base 10: 'abc'
- ValueError: could not convert string to float: '3,5'
- ValueError: not enough values to unpack (expected 2, got 1)
- ValueError: too many values to unpack (expected 2)
- ValueError: 5 is not in list
- ValueError: substring not found
- ValueError (семейство целиком)
- ZeroDivisionError: division by zero
Окружение: ввод, импорт, файлы, рекурсия
- EOFError: EOF when reading a line
- RecursionError: maximum recursion depth exceeded
- ModuleNotFoundError: No module named 'requests'
- ImportError: cannot import name 'helper' from 'utils'
- ImportError (семейство целиком)
- FileNotFoundError: [Errno 2] No such file or directory: 'data.txt'
- KeyboardInterrupt (семейство целиком)
- StopIteration (семейство целиком)
- AssertionError (семейство целиком)
Как читать трейсбек
- Читай снизу вверх: последняя строка называет ошибку и объясняет её текстом.
- Строка выше с
File "...", line Nпоказывает, где Python остановился. Для SyntaxError причина часто на строке выше указанной. - Стрелка
^под кодом отмечает место, где разбор сломался.
Как работает расшифровщик
Берёт последнюю строку с именем ошибки, сверяет текст со словарём из 82 сообщений и подставляет имена из твоего трейсбека в объяснение. Словарь собран по реальным ошибкам из тренажёра Koddo.
Если точного сообщения в словаре нет, покажет разбор семейства ошибки. Сторонние библиотеки и их собственные исключения не разбирает.
Преподавателям
У каждой ошибки в каталоге постоянная ссылка: кнопка «ссылка» на странице семейства копирует адрес с якорем. Можно давать её в ответ на вопрос ученика или вставлять в материалы курса.
Страницы не требуют регистрации и не отправляют код ученика на сервер.
Дальше
- Песочница Python: запусти код и посмотри на ошибку вживую.
- Справочник по Python: разборы ошибок и конструкций с примерами.
- Python-тренажёр: задачи с автопроверкой, где эти ошибки и встречаются.
- Шпаргалка по Python: синтаксис на одной странице.