我正在尝试为一个循环增加索引,但是我的程序无法正常工作。我有一个包含10个元素的简单数组,我想对该数组的所有元素求和。我遇到了问题,因为我考虑了两个循环,首先我要计算五个第一个元素,而不是最后五个,但是我的计数器i_i在程序中没有更改,代码为
import numpy as np
from matplotlib.pylab import *
x = [1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10]
i_i = 0
i_j = 5
sum_t = 0.0
for i in range(2):
for ii in range(i_j):
sum_t += x[i]
i_i += 5
i_j += 5
print(sum_t)
总和的值必须为55,但是索引i_i存在问题。欢迎提出任何建议以使程序以这种方式工作。
[您在第二个循环中使用了错误的变量,它是ii
,而不是i
。其次,最后一个循环必须从i_i
到i_j
,因此您的范围也是错误的:
import numpy as np
from matplotlib.pylab import *
x = [1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10]
i_i = 0
i_j = 5
sum_t = 0.0
for i in range(2):
for ii in range(i_i, i_j):
sum_t += x[ii]
i_i += 5
i_j += 5
print(sum_t)
我不确定您希望通过将两半相加来达到什么目的,但这是可行的:
x = [1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10]
i_i = 0
i_j = 5
sum_t = 0.0
for i in range(2):
for ii in range(i_j):
sum_t += x[ii + i_i]
i_i += 5
print(sum_t)
i_j
表示您希望每次总计5个元素。 i_i
告诉循环,从x
开始多远。
我确定float(sum(x))
会给出相同的答案。
您忘记了使用i_i索引,而第二个因为您使用i而不是ii。
x = [1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10]
i_i = 0
i_j = 5
sum_t = 0.0
for i in range(2):
for ii in range(i_i, i_j):
sum_t += x[ii]
i_i += 5
i_j += 5
print (i_j)
print(sum_t)
但是我只会用这个:
print(sum(x))