當我編譯下面的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
爲何? 函數
看起來是一個縮進問題。 你沒必要匹配在Python大括號,但你必須匹配縮進層次。 spa
防止空格/製表符問題的最佳方法是在文本編輯器中顯示不可見的字符。 這將爲您提供預防和/或解決與縮進相關的錯誤的快速方法。 code
一樣,注入複製粘貼的代碼是此類問題的常見來源。 ip
若是您使用Python的IDLE編輯器,則能夠按照如下相似錯誤消息之一的建議進行操做: io
1)全選,例如Ctrl + A 編譯
2)轉到格式->取消製表區域 class
3)仔細檢查您的縮進是否正確,保存並從新運行您的程序。 import
我正在使用Python 2.5.4
多是由於其上方的函數縮進方式不一樣。 即
class a: def blah: print("Hello world") def blah1: print("Hello world")
這是由於製表符和空格混在一塊兒。 您能夠刪除全部空格,而後將其替換爲製表符。
或者,嘗試編寫如下代碼:
#!/usr/bin/python -tt
在代碼的開頭。 此行解決了製表符和空格之間的全部差別。
就我而言,問題是在Eclipse上配置pydev