我的代码确实没有“问题”。更有什者,我不知道它是如何工作的。就像...一个嵌套的if语句,除了这是一个嵌套在for循环内的for语句。可以帮助我多一点理解吗?
我在python上搜索了一些有关范围的东西,但没有看到类似的东西。
for i in range(3):
for j in range(2):
print(i, j)
没有错误消息,因为代码没有错。我知道第一部分是说i的范围将是0、1和2。然后第二部分是i的范围是0和1。但是,这如何与所有有序对匹配?对不起,我是菜鸟,请原谅我。
答案 0 :(得分:1)
也许在两个print("i=", i)
之间添加for
,您将了解其工作原理。
第一个外部for
仅设置i=0
,并且它与for
,j=0
一起运行内部j=1
,因此得到(0,0), (0,1)
。
此后,它返回到设置i=1
并使用for
,j=0
再次运行内部j=1
的外部循环,因此您得到(1,0),(1,1)
。
此后,它返回到设置i=2
并使用for
,j=0
再次运行内部j=1
的外部循环,因此您得到(2,0),(2,1)
。
答案 1 :(得分:0)
for i in range(3):
for j in range(2):
print('i: ',i, 'j: ',j)
print('_'*20)
输出:
i: 0 j: 0
____________________
i: 0 j: 1
____________________
i: 1 j: 0
____________________
i: 1 j: 1
____________________
i: 2 j: 0
____________________
i: 2 j: 1
____________________
如果您查看i = 0
,则会在前三个打印中将其选中。这是因为对于i = 0
,从内部执行语句块。由于该句子块是另一个循环for
,因此对于i = 0
,将执行整个内部循环for
,即j = 0
和j = 1
。完成后,将再次为i = 1
执行。
也许您可以这样更好地理解它:
list1=['hello','what is your name?:']
list2=['anne','mark']
for key in list1:
for key2 in list2:
print(key + ' ' +key2)
输出:
hello anne
hello mark
what is your name?: anne
what is your name?: mark
答案 2 :(得分:0)
我参加聚会可能有点晚了
但是您可以认为i,j
是row,col
,因此:
[[1,2,3],
[4,5,6],
[7,8,9]]
在这些特定范围内运行代码将产生所有值,即1 2 3 ... 9。
如果我们考虑i,j / row, col
的文字值,那么它就是行和列的每种组合。
for i in range(2):
for j in range(2):
print(i, j)
~~ =
for row in range(2):
for col in range(2):
print(i, j)
#print(matrix[row][col])