for循环中的递增计数器,用于对一个简单数组求和

问题描述 投票:0回答:2

我正在尝试为一个循环增加索引,但是我的程序无法正常工作。我有一个包含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存在问题。欢迎提出任何建议以使程序以这种方式工作。

python
2个回答
1
投票

[您在第二个循环中使用了错误的变量,它是ii,而不是i。其次,最后一个循环必须从i_ii_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)

0
投票

我不确定您希望通过将两半相加来达到什么目的,但这是可行的:

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))会给出相同的答案。


0
投票

您忘记了使用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))
© www.soinside.com 2019 - 2024. All rights reserved.