条件语句中的缩进错误

时间:2018-04-10 13:57:05

标签: python if-statement indentation

我对以下代码有疑问:

def enum2(q,k):
    n = q.length
    if k == n:
        #asdasdsa
    else:
        for i in range(0,n):
            q[k] = i
            if (isSafe(q,k)):
                enum2(q,k+1)

    else:
   ^
IndentationError: expected an indented block

Python编译器抱怨else语句中的缩进,但我不知道原因。

我找了空格,但除了标签之外我没有找到任何空格。

1 个答案:

答案 0 :(得分:1)

问题出在第一个if语句中(第3行);之后什么都没有。同样的事情也发生在最后else(第12行),在它之前也没有if语句。

您的代码应如下所示:

def enum2(q,k):
    n = q.length
    if k == n:
        pass
    else:
        for i in range(0,n):
            q[k] = i
            if (isSafe(q,k)):
                enum2(q,k+1)
    if ... something:
      pass
    else:
      pass

除非你的第二个else是循环的一部分。在这种情况下,您的代码应为:

def enum2(q,k):
    n = q.length
    if k == n:
        pass
    else:
        for i in range(0,n):
            q[k] = i
            if (isSafe(q,k)):
                enum2(q,k+1)
            else:
              pass

请注意,在您实际插入一些代码之前,我会使用pass作为占位符。