当我编译下面的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
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3157642