IndentationError:unindent與任何外部縮進級別都不匹配

當我編譯下面的Python代碼時,我獲得 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

爲何? 函數


#1樓

看起來是一個縮進問題。 你沒必要匹配在Python大括號,但必須匹配縮進層次。 spa

防止空格/製表符問題的最佳方法是在文本編輯器中顯示不可見的字符。 這將爲您提供預防和/或解決與縮進相關的錯誤的快速方法。 code

一樣,注入複製粘貼的代碼是此類問題的常見來源。 ip


#2樓

若是您使用Python的IDLE編輯器,則能夠按照如下相似錯誤消息之一的建議進行操做: io

1)全選,例如Ctrl + A 編譯

2)轉到格式->取消製表區域 class

3)仔細檢查您的縮進是否正確,保存並從新運行您的程序。 import

我正在使用Python 2.5.4


#3樓

多是由於其上方的函數縮進方式不一樣。 即

class a:
    def blah:
      print("Hello world")
    def blah1:
      print("Hello world")

#4樓

這是由於製表符和空格混在一塊兒。 您能夠刪除全部空格,而後將其替換爲製表符。

或者,嘗試編寫如下代碼:

#!/usr/bin/python -tt

在代碼的開頭。 此行解決了製表符和空格之間的全部差別。


#5樓

就我而言,問題是在Eclipse上配置pydev

pydev @ Eclipse

相關文章
相關標籤/搜索