有人可以解释范围内的范围吗?

时间:2019-08-25 23:14:11

标签: python

我的代码确实没有“问题”。更有什者,我不知道它是如何工作的。就像...一个嵌套的if语句,除了这是一个嵌套在for循环内的for语句。可以帮助我多一点理解吗?

我在python上搜索了一些有关范围的东西,但没有看到类似的东西。

for i in range(3):
    for j in range(2):
        print(i, j)

没有错误消息,因为代码没有错。我知道第一部分是说i的范围将是0、1和2。然后第二部分是i的范围是0和1。但是,这如何与所有有序对匹配?对不起,我是菜鸟,请原谅我。

3 个答案:

答案 0 :(得分:1)

也许在两个print("i=", i)之间添加for,您将了解其工作原理。

第一个外部for仅设置i=0,并且它与forj=0一起运行内部j=1,因此得到(0,0), (0,1)

此后,它返回到设置i=1并使用forj=0再次运行内部j=1的外部循环,因此您得到(1,0),(1,1)

此后,它返回到设置i=2并使用forj=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 = 0j = 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,jrow,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])