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