Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌套for循环的Python变量起点_Python_For Loop - Fatal编程技术网

嵌套for循环的Python变量起点

嵌套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

我试图创建一个嵌套的for循环,其中内部循环在第一次运行时具有不同的范围,然后为每个后续循环使用不同的范围

该程序是一个数独解算器。它的工作原理是在9x9板上取一个位置(
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