← Все вопросы

IndentationError: unindent does not match — съехали отступы, как чинить?

Задан 4 месяца назад697 просмотров2 ответа
5

Питон выдаёт IndentationError: unindent does not match any outer indentation level. Код вроде ровный:

def check(x):
    if x > 0:
        print("плюс")
      print("конец")

Что значит "unindent does not match"?

2 ответа

10
✓ Принятый ответ — помог автору

У тебя строки выровнены непоследовательно: print("конец") отступлен на 6 пробелов, а это не совпадает ни с уровнем функции (4), ни с уровнем if (8). Питон не понимает, к какому блоку относится строка — отсюда ошибка.

Приведи отступы к ровным уровням по 4 пробела:

def check(x):
    if x > 0:
        print("плюс")
    print("конец")

Главное правило: в одном блоке у всех строк должен быть одинаковый отступ, и лучше везде пробелы, а не табы.

4

Чаще всего такое — из-за смеси табов и пробелов, которую глазом не видно. В настройках редактора включи "показывать пробельные символы" и "вставлять пробелы вместо табов", и проблема пропадёт навсегда.

Ваш ответ

Войдите, чтобы ответить на вопрос.