IndentationError:unindent与任何外部缩进级别都不匹配

走远了吗. 提交于 2020-02-28 10:35:43

当我编译下面的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大括号,但必须匹配缩进层次。

防止空格/制表符问题的最佳方法是在文本编辑器中显示不可见的字符。 这将为您提供预防和/或解决与缩进相关的错误的快速方法。

同样,注入复制粘贴的代码是此类问题的常见来源。


#2楼

如果您使用Python的IDLE编辑器,则可以按照以下类似错误消息之一的建议进行操作:

1)全选,例如Ctrl + A

2)转到格式->取消制表区域

3)仔细检查您的缩进是否正确,保存并重新运行您的程序。

我正在使用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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!