【发布时间】:2017-06-21 22:00:53
【问题描述】:
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]
【问题讨论】:
-
[(0, 0, 39, 39), (40, 0, 39, 39), (80, 0, 39, 39), (120, 0, 39, 39), (160, 0, 39 , 39), (200, 0, 39, 39), (240, 0, 39, 39), (280, 0, 39, 39), (320, 0, 39, 39), ( 360, 0, 39, 39), (400, 0, 39, 39), (440, 0, 39, 39), (480, 0, 39, 39), (520, 0, 39, 39), (560, 0, 39, 39), (600, 0, 39, 39), (0, 40, 39, 39), (40, 40, 39, 39), (80, 40, 39, 39), (120, 40, 39, 39), (160, 40, 39, 39), (200, 40, 39, 39), (240, 40, 39, 39), (280, 40, 39, 39), (320, 40, 39, 39), (360, 40, 39, 39), (400, 40, 39, 39), (440, 40, 39, 39), (480, 40, 39, 39), (520, 40, 39, 39), (560, 40, 39, 39), (600, 40, 39, 39)] -
这是我运行程序并打印
bombs时的输出。 a 的值正在发生变化 :) 因为它是一个嵌套循环,它在 16 个值之后发生变化,如(0, 40, 39, 39)所示 -
我无法重现您的问题:ideone.com/DATDNd 这真的是整个代码吗?