Что такое ошибка IndentationError?
Ошибка IndentationError: expected an indented block
возникает, когда Python ожидает отступ после двоеточия, но не находит его или отступы неправильные.
Причины возникновения
- Отсутствие отступа после двоеточия
- Смешивание табуляции и пробелов
- Неправильная глубина отступа
- Пустой блок без pass
- Проблемы с копированием кода
Как отладить ошибку
- Проверь отступы на консистентность - используй 4 пробела
- Включи отображение пробелов в IDE - для визуализации отступов
- Проверь смешивание табуляции и пробелов - используй только пробелы
- Проверь глубину отступов - каждый уровень должен быть +4 пробела
Как исправить ошибку
1. Используй консистентные отступы (4 пробела)
2. Настрой IDE для отображения отступов
3. Используй pass для пустых блоков
4. Конвертируй табуляцию в пробелы
Как мониторить подобные ошибки
- Используй линтеры (flake8, pylint) для автоматического обнаружения
- Настрой IDE для автоматического форматирования
- Используй pre-commit hooks для проверки отступов
- Включи отображение пробелов в редакторе
FAQ
В: Можно ли использовать табуляцию вместо пробелов?
О: PEP 8 рекомендует использовать 4 пробела. Смешивание табуляции и пробелов вызывает ошибки.
В: Как настроить автоматическое форматирование в IDE?
О: Включи "Format on Save" и настрой отступы на 4 пробела в настройках редактора.
В: Что делать с кодом, скопированным из интернета?
О: Всегда проверяй отступы и конвертируй их в правильный формат перед использованием.
Лучшие практики
- Всегда используй 4 пробела для отступов
- Никогда не смешивай табуляцию и пробелы
- Настрой IDE для автоматического форматирования
- Используй линтеры для проверки стиля
- Следуй PEP 8 для форматирования кода