当我编译下面的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?
当前回答
这是因为制表符和空格混淆了。 您可以删除所有空格并用制表符替换它们。
或者, 试着这样写:
#!/usr/bin/python -tt
在代码的开头。这一行解决了制表符和空格之间的任何差异。
其他回答
对于Atom用户,Packages ->whitspace ->删除尾随空格 这对我很有效
我正在使用Sublime Text 3与Flask项目。我修复了使用视图>缩进>选项卡宽度:4后未选择缩进使用空间的错误
重要的是: 空格是首选方法-请参阅PEP 8缩进和制表符或空格?(感谢@Siha。)
Sublime Text用户:
设置Sublime Text使用制表符缩进: 将缩进转换为制表符
在上面的同一子菜单中取消使用空格缩进选项。 这将立即解决这个问题。
使用Visual studio代码
如果你使用vs code than,它将使用下面的简单步骤将所有混合缩进转换为空格或制表符。
按Ctrl + Shift + p 使用空格输入缩进 按回车键
看起来是压痕问题。你不必在Python中匹配花括号,但你必须匹配缩进级别。
防止空格/制表符问题的最好方法是在文本编辑器中显示不可见的字符。这将为您提供一种快速防止和/或解决缩进相关错误的方法。
此外,注入复制粘贴的代码是这类问题的常见来源。