当我编译下面的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?
当我编译下面的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?
当前回答
我犯了同样的错误,因为另一件事,不是关于制表符和空格。我有第一个比其他的稍微多一点缩进:更深入。如果它只是一两个空间,你可能会在一个很长的代码块之后检查它。文档字符串也是一样:
"""comment comment
comment
"""
它们还需要对齐,请参阅同一页上的另一个答案。
可复制的几行:
if a==1:
print('test')
else:
print('test2')
抛出:
File "<ipython-input-127-52bbac35ad7d>", line 3
else:
^
IndentationError: unindent does not match any outer indentation level
其他回答
我犯了同样的错误,因为另一件事,不是关于制表符和空格。我有第一个比其他的稍微多一点缩进:更深入。如果它只是一两个空间,你可能会在一个很长的代码块之后检查它。文档字符串也是一样:
"""comment comment
comment
"""
它们还需要对齐,请参阅同一页上的另一个答案。
可复制的几行:
if a==1:
print('test')
else:
print('test2')
抛出:
File "<ipython-input-127-52bbac35ad7d>", line 3
else:
^
IndentationError: unindent does not match any outer indentation level
每当我遇到这个错误时,都是因为我在编辑器中混淆了制表符和空格。
这是因为制表符和空格混淆了。 您可以删除所有空格并用制表符替换它们。
或者, 试着这样写:
#!/usr/bin/python -tt
在代码的开头。这一行解决了制表符和空格之间的任何差异。
另一种纠正缩进错误的方法是复制您的 代码到PyCharm(如果您已经配置了),并重新格式化文件 它将自动正确地缩进。
我使用Jupyter笔记本电脑,尝试了上面几乎所有的解决方案(适应我的场景),但都没有用。然后我逐行删除每行的所有空格并用制表符替换。这就解决了问题。