嵌套的“for”循环不会改变循环内的变量

时间:2017-02-04 16:34:35

标签: python for-loop append

        for a in range(0,2):
            for x in range (0,16):
                bombs.append(((40*x),(40*a),39,39))

这是我在这个网站上的第一个问题,我是python的新手,所以任何提示和简单的解释都将不胜感激!

如标题所述,我似乎无法改变.append中的“a”变量。我收到的输出是:

(0,0,39,39) (40,0,39,39) (80,0,39,39) (120,0,39,39) (160,0,39,39) (200,0,39,39) 等....

(0,0,39,39) (40,0,39,39) (80,0,39,39) (120,0,39,39) (160,0,39,39) (200,0,39,39) 等...

第一组显然是正确的,但当它再次循环时,变量保持为0而不是40 * a的值!

我希望我犯了一个简单的错误!谢谢

使用完整代码进行更新:

def bomb():
    global bombs
    bombs=[]

    for a in range(0,2):
        for x in range (0,16):
            bombs.append(((40*x),(40*a),39,39))
            print bombs[x]

1 个答案:

答案 0 :(得分:0)

这些是嵌套循环。你的内循环

for x in range (0,16):

将在外循环的第一次迭代期间迭代16次。只有经过x更改的16次迭代后,a才会首次发生变化!

[..., (600, 0, 39, 39),  (0, 40, 39, 39), ...]