IndentationError (Python)
Коротко: Python сообщает, что отступ строки не соответствует окружающему коду.
Подробнее: Python использует отступы вместо фигурных скобок для образования блоков. Если отступ неверен, интерпретатор прерывает работу до запуска. Типичные сообщения: IndentationError: unexpected indent, expected an indented block и unindent does not match any outer indentation level.
Подробности
Возможные причины
- После
if,for,def,class,whileилиtryотсутствует блок с отступом. - Смешаны табуляции и пробелы (выглядит одинаково, но это не так).
- Строка случайно с отступом или без него.
- Код скопирован из интернета с неверным форматированием.
Пример
def greet(name):
print("Hello", name) # IndentationError: expected an indented blockПравильно:
def greet(name):
print("Hello", name)Решения
- Используйте четыре пробела на уровень и будьте последовательны везде.
- Сделайте табуляции видимыми в редакторе и преобразуйте их в пробелы (VS Code: «Convert Indentation to Spaces»).
- Строка без содержимого? Тогда напишите
pass. - Найдите смешанные формы через
python -m tabnanny file.py. - Используйте форматировщик, например Black или Ruff.
См. также: ModuleNotFoundError