IndentationError: unindent не соответствует ни одному внешнему уровню отступа - PullRequest
477 голосов
/ 29 января 2009

Когда я компилирую код Python ниже, я получаю

IndentationError: unindent не соответствует ни одному внешнему уровню отступа


import sys

def Factorial(n): # Return factorial
    result = 1
    for i in range (1,n):
        result = result * i
    print "factorial is ",result
    return result

Почему?

Ответы [ 25 ]

0 голосов
/ 14 февраля 2014

Это может быть из-за того, что функция над ней не имеет отступа таким же образом. т.е.

class a:
    def blah:
      print("Hello world")
    def blah1:
      print("Hello world")
0 голосов
/ 05 марта 2014

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

Или, Попробуйте написать это:

#!/usr/bin/python -tt

в начале кода. Эта строка разрешает любые различия между символами табуляции и пробелами.

0 голосов
/ 08 марта 2014

в моем случае проблема была в настройке pydev на Eclipse

pydev @ Eclipse

0 голосов
/ 28 января 2015

Если вы используете Sublime text для разработки на python, вы можете избежать ошибки, используя пакет Anaconda. После установки Anaconda,

  1. открыть ваш файл в возвышенном
  2. щелкните правой кнопкой мыши на открытых пространствах
  3. выбрать анаконду
  4. нажмите на автоформат
  5. СДЕЛАНО Или нажмите CTRL + ALT + R.
0 голосов
/ 02 декабря 2014

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

1) выбрать все, например, Ctrl + A

2) Перейти к коду -> Untabify Region

3) Дважды проверьте правильность отступа, сохраните и перезапустите программу.

Я использую Python 3.4.2

...