当我编译下面的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

Why?


当前回答

这可能是因为上面的函数没有以同样的方式缩进。 即。

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

其他回答

我使用Jupyter笔记本电脑,尝试了上面几乎所有的解决方案(适应我的场景),但都没有用。然后我逐行删除每行的所有空格并用制表符替换。这就解决了问题。

重要的是: 空格是首选方法-请参阅PEP 8缩进和制表符或空格?(感谢@Siha。)

Sublime Text用户:

设置Sublime Text使用制表符缩进: 将缩进转换为制表符

在上面的同一子菜单中取消使用空格缩进选项。 这将立即解决这个问题。

每当我遇到这个错误时,都是因为我在编辑器中混淆了制表符和空格。

您确定在缩进空白中没有混合制表符和空格吗?(这会导致错误。)

注意,建议不要在Python代码中使用制表符。请参阅样式指南。您应该配置notepad++为制表符插入空格。

对于Atom用户,Packages ->whitspace ->删除尾随空格 这对我很有效