我有一堆if ... elif语句在for循环中迭代。我在小数点中间出现“预期的缩进块”错误。我不知道为什么。
我正在Windows上的python 3.7.2 IDLE中运行我的代码。我浏览了其他线程,但没有一个线程帮助我发现问题。
var qm = queue.GetMessages(20);
if (!qm.Any(x => x.AsString.Contains(key_property)))
{
queue.AddMessage(message);
}
该错误发生在第12行。该消息突出显示了elif和x == 1之间的空格:
问题的结论: 我想出了一种完全不同的方式来做同样的事情,这样就不会给我错误:
rows = [[],[],[],[],[],[],[],[],[]] # rows is a list of 9 lists of nine integers each between 0 and 9 (inclusive)
squares = [] # Where square_interpreter() .append()'s the lists of integers
def square_interpreter(): # Determines the 9 values in each 3 by 3 square in a Sudoku puzzle
for x in range(9):
output = []
if x in [0,1,2]:
for n in range(3):
if x == 0:
for i in range(3):
output.append(rows[n][i])
elif x == 1:
for i in range(3,6):
output.append(rows[n][i])
elif x == 2:
for i in range(6,9):
output.append(rows[n][i])
elif x in [3,4,5]:
for n in range(3,6):
if x == 3:
for i in range(3):
output.append(rows[n][i])
elif x == 4:
for i in range(3,6):
output.append(rows[n][i])
elif x == 5:
for i in range(6,9):
output.append(rows[n][i])
else:
for n in range(6,9):
if x == 6:
for i in range(3):
output.append(rows[n][i])
elif x == 7:
for i in range(3,6):
output.append(rows[n][i])
elif x == 8:
for i in range(6,9):
output.append(rows[n][i])
squares.append(output)
我知道这看起来有很大的不同,没有上下文它可能没有任何意义,但是它可以做同样的事情。实际上,它比旧版本短很多。感谢您的全力帮助:)
答案 0 :(得分:0)
for x in range(9):
output = []
if x in [0,1,2]:
for n in range(3):
if x == 0:
for i in range(3):
output.append(rows[n][i])
elif x == 1:
for i in range(3,6):
output.append(rows[n][i])
elif x == 2:
for i in range(6,9):
output.append(rows[n][i])
您的问题似乎在第2行上。output = []使制表符缩进得太远了。
编辑:显然不是,但是至少现在已经修复了:D
答案 1 :(得分:0)
rows=[[1,2,3,4,5,6,7,8,9],[2,3,2,4,5,3,5,3,2],[2,3,2,4,5,8,9,2,1]]
output = []
for x in range(9):
if x in [0,1,2]:
for n in range(3):
if x == 0:
for i in range(3):
output.append(rows[n][i])
elif x == 1:
for i in range(3,6):
output.append(rows[n][i])
elif x == 2:
for i in range(6,9):
output.append(rows[n][i])
print(output)
以上是您以前发布的代码的正确版本
我正在使用虚拟行数组
输出数组应在for循环外定义
这不会出现任何错误。
希望对您有帮助