当我编译下面的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?
当前回答
因为我意识到没有特定于spyder的答案,我将添加一个: 基本上,仔细查看你的if语句,并确保所有if, elif和else都有相同的间距,即它们在开始时处于同一行,如下所述:
def your_choice(answer):
if answer>5:
print("You're overaged")
elif answer<=5 and answer>1:
print("Welcome to the toddler's club!")
else:
print("No worries mate!")
其他回答
每当我遇到这个错误时,都是因为我在编辑器中混淆了制表符和空格。
我犯了同样的错误,因为另一件事,不是关于制表符和空格。我有第一个比其他的稍微多一点缩进:更深入。如果它只是一两个空间,你可能会在一个很长的代码块之后检查它。文档字符串也是一样:
"""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
重要的是: 空格是首选方法-请参阅PEP 8缩进和制表符或空格?(感谢@Siha。)
Sublime Text用户:
设置Sublime Text使用制表符缩进: 将缩进转换为制表符
在上面的同一子菜单中取消使用空格缩进选项。 这将立即解决这个问题。
我正在使用Sublime Text 3与Flask项目。我修复了使用视图>缩进>选项卡宽度:4后未选择缩进使用空间的错误
您确定在缩进空白中没有混合制表符和空格吗?(这会导致错误。)
注意,建议不要在Python代码中使用制表符。请参阅样式指南。您应该配置notepad++为制表符插入空格。