当我编译下面的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?
当前回答
如果你使用notepad++,用扩展搜索模式做一个“替换”来找到\t并替换为四个空格。
其他回答
为了方便地检查制表符/空格的问题,你可以这样做:
python -m tabnanny yourfile.py
当然,你也可以设置正确的编辑器:-)
这可能是因为上面的函数没有以同样的方式缩进。 即。
class a:
def blah:
print("Hello world")
def blah1:
print("Hello world")
我昨天也有同样的问题,这是缩进错误,正在使用崇高的文本编辑器。我花了几个小时来修复它,最后我把代码复制到VI文本编辑器中,它工作得很好。Ps python对空格太敏感,请确保不要混合空格和制表符。
我犯了同样的错误,因为另一件事,不是关于制表符和空格。我有第一个比其他的稍微多一点缩进:更深入。如果它只是一两个空间,你可能会在一个很长的代码块之后检查它。文档字符串也是一样:
"""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
另一种纠正缩进错误的方法是复制您的 代码到PyCharm(如果您已经配置了),并重新格式化文件 它将自动正确地缩进。