IndentationError: unindent does not match any outer indentation level, although the indentation looks correct [duplicate]
IndentationError: unindent не соответствует никакому внешнему уровню отступа, хотя отступ выглядит правильным
Когда я компилирую приведенный ниже код Python, я получаю
IndentationError: unindent не соответствует никакому внешнему уровню отступа
import sys
defFactorial(n): # Return factorial result = 1 for i inrange (1,n): result = result * i print"factorial is ",result return result
Почему?
Переведено автоматически
Ответ 1
Одна из возможных причин этой ошибки заключается в том, что для отступа могут быть пробелы, смешанные с табуляцией. Попробуйте выполнить поиск и замену, чтобы заменить все табуляции несколькими пробелами.
Попробуйте это:
import sys
defFactorial(n): # return factorial result = 1 for i inrange (1,n): result = result * i print"factorial is ",result return result
Настройте Sublime Text на использование табуляций для отступа: меню Вид → Отступ → Преобразовать отступ в табуляцию
Снимите флажок Отступ с использованием пробелов также в том же подменю выше. Это немедленно решит эту проблему.
Ответ 3
Чтобы легко проверить наличие проблем с табуляциями / пробелами, вы действительно можете сделать это:
python -m tabnanny yourfile.py
или вы можете просто правильно настроить свой редактор, конечно :-)
Ответ 4
Вы уверены, что не смешиваете табуляцию и пробелы в вашем пробеле для отступов? (Это вызовет эту ошибку.)
Примечание, рекомендуется не использовать табуляции в коде Python . Смотрите Руководство по стилю . Вы должны настроить Notepad ++ для вставки пробелов для табуляций.