我对以下代码有疑问:
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
语句中的缩进,但我不知道原因。
我找了空格,但除了标签之外我没有找到任何空格。
答案 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
作为占位符。