当我编译下面的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?
当前回答
我得到这个错误,即使我没有任何制表符在我的代码,原因是有一个多余的右括号在我的代码的某处。我应该早点算出来的,因为它把等号前后的空格弄乱了……如果在IDE中运行Reformat code(或手动运行autopep8)后仍然发现任何错误,请确保所有括号都匹配,从第一个等号前后的奇怪空格开始。
其他回答
因为我意识到没有特定于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!")
这可能是因为上面的函数没有以同样的方式缩进。 即。
class a:
def blah:
print("Hello world")
def blah1:
print("Hello world")
我得到了类似的错误如下:
IndentationError:期望一个缩进的块
当我忘记把pass传给下面的类或函数时,然后在类或函数之后编写其他代码,如下所示:
class Person:
# pass
x = 10
def test():
# pass
x = 10
并且,当其他代码没有在类或函数之后编写时,如下所示:
class Person:
# pass
# x = 10
def test():
# pass
# x = 10
我得到的错误如下:
SyntaxError:解析时意外的EOF
您确定在缩进空白中没有混合制表符和空格吗?(这会导致错误。)
注意,建议不要在Python代码中使用制表符。请参阅样式指南。您应该配置notepad++为制表符插入空格。
我在Ubuntu操作系统中使用Sublime文本。要修复此问题,请转到
>缩进->将缩进转换为制表符