当我编译下面的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?
当前回答
如果你使用Python的IDLE编辑器,你可以按照它在类似错误消息中建议的那样做:
1)全选,如Ctrl + A
2)进入Format -> Untabify Region
3)再次检查缩进是否正确,保存并重新运行程序。
我使用的是Python 2.5.4
其他回答
我正在使用Sublime Text 3与Flask项目。我修复了使用视图>缩进>选项卡宽度:4后未选择缩进使用空间的错误
您确定在缩进空白中没有混合制表符和空格吗?(这会导致错误。)
注意,建议不要在Python代码中使用制表符。请参阅样式指南。您应该配置notepad++为制表符插入空格。
重要的是: 空格是首选方法-请参阅PEP 8缩进和制表符或空格?(感谢@Siha。)
Sublime Text用户:
设置Sublime Text使用制表符缩进: 将缩进转换为制表符
在上面的同一子菜单中取消使用空格缩进选项。 这将立即解决这个问题。
其他的海报可能是正确的…可能会在制表符中混入空格。尝试用一些空格替换所有的制表符。
试试这个:
import sys
def Factorial(n): # return factorial
result = 1
for i in range (1,n):
result = result * i
print "factorial is ",result
return result
print Factorial(10)
为了它的价值,我的文档字符串缩进太多,这也抛出相同的错误
class junk:
"""docstring is indented too much"""
def fun(): return
IndentationError: unindent不匹配任何外部缩进级别