数组和操作结果被分配给值的问题
problem with arrays and operations result beign asaigned to values
这是 python 代码:
x=[2, 3, 5, 7]
for i in range(1, 5000):
if i%2:
if i%3:
if i%5:
if i%7:
x.append(i)
x.remove(1)
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
出于某种原因我得到了一个 IndexError: list index out of range
,即使 x[] 是 1360 并且 a 只是 6 而 b 是 2 所以我不知道为什么会这样。你能帮忙的话,我会很高兴。
我正在使用 python shell。会有问题吗?
你的代码的问题是你在for循环中的逻辑。
你看:-
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
是的,a 是 6,b 是 2,但是当你第一次进入 for 循环时,
a 的值为
x[a-b] 即 x[6-2]
即x[4] 给你 11
所以a的值为11,b也一样,
b = x[a] - x[b] # which translates to x[11] - x[2]
变为 b=32 并且循环继续 jumping/changing a 和 b 的值将引导您到达预期的 IndexError: list index out of range
。
尝试在 pycharm 中执行你的程序并调试它,你会更好地理解它,或者只是放一些打印语句。
我无法在评论中输入太多内容,因此将其作为答案发布。
这是 python 代码:
x=[2, 3, 5, 7]
for i in range(1, 5000):
if i%2:
if i%3:
if i%5:
if i%7:
x.append(i)
x.remove(1)
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
出于某种原因我得到了一个 IndexError: list index out of range
,即使 x[] 是 1360 并且 a 只是 6 而 b 是 2 所以我不知道为什么会这样。你能帮忙的话,我会很高兴。
我正在使用 python shell。会有问题吗?
你的代码的问题是你在for循环中的逻辑。
你看:-
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
是的,a 是 6,b 是 2,但是当你第一次进入 for 循环时, a 的值为
x[a-b] 即 x[6-2]
即x[4] 给你 11
所以a的值为11,b也一样,
b = x[a] - x[b] # which translates to x[11] - x[2]
变为 b=32 并且循环继续 jumping/changing a 和 b 的值将引导您到达预期的 IndexError: list index out of range
。
尝试在 pycharm 中执行你的程序并调试它,你会更好地理解它,或者只是放一些打印语句。
我无法在评论中输入太多内容,因此将其作为答案发布。