Что такое ошибка IndentationError?

Ошибка IndentationError: expected an indented block возникает, когда Python ожидает отступ после двоеточия, но не находит его или отступы неправильные.

Причины возникновения

  • Отсутствие отступа после двоеточия
  • Смешивание табуляции и пробелов
  • Неправильная глубина отступа
  • Пустой блок без pass
  • Проблемы с копированием кода

Как отладить ошибку

  1. Проверь отступы на консистентность - используй 4 пробела
  2. Включи отображение пробелов в IDE - для визуализации отступов
  3. Проверь смешивание табуляции и пробелов - используй только пробелы
  4. Проверь глубину отступов - каждый уровень должен быть +4 пробела

Как исправить ошибку

1. Используй консистентные отступы (4 пробела)

1# Правильно
2def my_function():
3    if condition:
4        print("Отступ 4 пробела")
5        for item in items:
6            print(item)  # Еще 4 пробела

2. Настрой IDE для отображения отступов

1# Включи отображение пробелов в IDE
2# • = пробел, → = табуляция
3def function():
4••••print("Правильный отступ")

3. Используй pass для пустых блоков

1# Неправильно
2if condition:
3# Пустая строка вызывает ошибку
4
5# Правильно
6if condition:
7    pass  # Явно указываем пустой блок

4. Конвертируй табуляцию в пробелы

1# В командной строке
2expand -t 4 file.py > file_fixed.py
3
4# Или используй IDE для автоматической конвертации

Как мониторить подобные ошибки

  • Используй линтеры (flake8, pylint) для автоматического обнаружения
  • Настрой IDE для автоматического форматирования
  • Используй pre-commit hooks для проверки отступов
  • Включи отображение пробелов в редакторе

FAQ

В: Можно ли использовать табуляцию вместо пробелов?

О: PEP 8 рекомендует использовать 4 пробела. Смешивание табуляции и пробелов вызывает ошибки.

В: Как настроить автоматическое форматирование в IDE?

О: Включи "Format on Save" и настрой отступы на 4 пробела в настройках редактора.

В: Что делать с кодом, скопированным из интернета?

О: Всегда проверяй отступы и конвертируй их в правильный формат перед использованием.

Лучшие практики

  • Всегда используй 4 пробела для отступов
  • Никогда не смешивай табуляцию и пробелы
  • Настрой IDE для автоматического форматирования
  • Используй линтеры для проверки стиля
  • Следуй PEP 8 для форматирования кода