当我编译下面的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?
当前回答
这一行:result = result * i应该缩进(它是for循环的主体)。
或者-你混合了空格和制表符
其他回答
我昨天也有同样的问题,这是缩进错误,正在使用崇高的文本编辑器。我花了几个小时来修复它,最后我把代码复制到VI文本编辑器中,它工作得很好。Ps python对空格太敏感,请确保不要混合空格和制表符。
这是因为制表符和空格混淆了。 您可以删除所有空格并用制表符替换它们。
或者, 试着这样写:
#!/usr/bin/python -tt
在代码的开头。这一行解决了制表符和空格之间的任何差异。
这一行:result = result * i应该缩进(它是for循环的主体)。
或者-你混合了空格和制表符
如果你使用notepad++,用扩展搜索模式做一个“替换”来找到\t并替换为四个空格。
使用Visual studio代码
如果你使用vs code than,它将使用下面的简单步骤将所有混合缩进转换为空格或制表符。
按Ctrl + Shift + p 使用空格输入缩进 按回车键