嵌套for循环的Python变量起点
我试图创建一个嵌套的for循环,其中内部循环在第一次运行时具有不同的范围,然后为每个后续循环使用不同的范围 该程序是一个数独解算器。它的工作原理是在9x9板上取一个位置(嵌套for循环的Python变量起点,python,for-loop,Python,For Loop,我试图创建一个嵌套的for循环,其中内部循环在第一次运行时具有不同的范围,然后为每个后续循环使用不同的范围 该程序是一个数独解算器。它的工作原理是在9x9板上取一个位置(board[k][l]),检查一个条件,然后直接移动到左边的板位置(board[k][l-1]) 如果l为0,则我们需要移动到上一行(k-1),并移动到右侧最远的位置,其中l等于8 我遇到的问题是,在内部循环的第一次迭代中,循环并不总是以l等于8开始 例如,用户my选择方形板[3][3]。 然后,该功能应检查board[3][2
board[k][l]
),检查一个条件,然后直接移动到左边的板位置(board[k][l-1]
)
如果l
为0,则我们需要移动到上一行(k-1
),并移动到右侧最远的位置,其中l
等于8
我遇到的问题是,在内部循环的第一次迭代中,循环并不总是以l
等于8开始
例如,用户my选择方形板[3][3]
。
然后,该功能应检查board[3][2]
然后board[3][1]
然后board[3][0]
然后board[2][8]
等等
只有当l=8
for i in range(k, -1, -1):
for j in range(l, -1, -1):
为清楚起见,我可以使用多个For循环来实现所需的结果,但我正在尝试使此代码更加简洁:
k = user selection
l = user selection
for j in range(l, 0, -1):
test(k,j)
for i in range(k-1, -1, -1):
for j in range(9, 0 , -1):
test(i,j)
我不喜欢这样有两个原因,第一,如果k或l从0开始,我们会遇到一个问题,第二,这里似乎没有必要使用两个for循环 这不就是在里面放一个
if
语句的问题吗
>>> k = 8
>>> l = 3
>>> run_one = True
>>> for i in range(k, -1, -1):
... if run_one:
... run_one = False
... for j in range(l, -1, -1):
... print(i, j)
... else:
... for j in range(8, -1, -1):
... print(i, j)
...
8 3
8 2
8 1
8 0
7 8
7 7
7 6
7 5
7 4
7 3
7 2
7 1
7 0
6 8
6 7
6 6
6 5
6 4
6 3
6 2
6 1
6 0
5 8
5 7
5 6
5 5
5 4
5 3
5 2
5 1
5 0
4 8
4 7
4 6
4 5
4 4
4 3
4 2
4 1
4 0
3 8
3 7
3 6
3 5
3 4
3 3
3 2
3 1
3 0
2 8
2 7
2 6
2 5
2 4
2 3
2 2
2 1
2 0
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
1 0
0 8
0 7
0 6
0 5
0 4
0 3
0 2
0 1
0 0
>>>
如果使用额外的
if
(或类似于此处的三元表达式),则可以在一个循环中管理此操作:
给出:
2,5
2,4
2,3
2,2
2,1
1,9
1,8
1,7
1,6
1,5
1,4
1,3
1,2
1,1
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
@Deveshkumarsing抱歉,如果不清楚的话,k并不总是=9,l也不总是=9
2,5
2,4
2,3
2,2
2,1
1,9
1,8
1,7
1,6
1,5
1,4
1,3
1,2
1,1
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1