Python 递增for循环中的计数器以对简单数组求和
我试图在循环中增加一个索引,但我的程序不起作用。我有一个包含10个元素的简单数组,我想对这个数组的所有元素求和。我有问题,因为我考虑两个循环,首先我想计算五个第一个元素,而不是五个最后一个元素,但是我的计数器iii在程序中没有变化,代码是Python 递增for循环中的计数器以对简单数组求和,python,Python,我试图在循环中增加一个索引,但我的程序不起作用。我有一个包含10个元素的简单数组,我想对这个数组的所有元素求和。我有问题,因为我考虑两个循环,首先我想计算五个第一个元素,而不是五个最后一个元素,但是我的计数器iii在程序中没有变化,代码是 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 ran
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)
您在第二个循环中使用了错误的变量,它是
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))
给出了相同的答案。我不确定你希望通过两半求和来实现什么,但这是可行的:
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
总和t=0.0
对于范围(2)中的i:
对于范围内的ii(i_i,i_j):
总和t+=x[ii]
i_i+=5
i_j+=5
打印(i_j)
打印(总和)
但我会用这个:
print(sum(x))
你忘了使用i_i索引,而在第二个索引中,你使用的是i而不是ii
x=[1,2,3,4,5,6,7,8,9,10]
i_i=0
i_j=5
总和t=0.0
对于范围(2)中的i:
对于范围内的ii(i_i,i_j):
总和t+=x[ii]
i_i+=5
i_j+=5
打印(i_j)
打印(总和)
但我会用这个:
print(sum(x))
下面是上述代码无法按预期工作的原因 1) 总和中的索引变量错误。必须使用x[ii]而不是x[i] 2) 第二个for循环的范围,第一次执行它必须从索引0开始,在下一次执行中,开始索引应该是5
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)
下面是上述代码无法按预期工作的原因 1) 总和中的索引变量错误。必须使用x[ii]而不是x[i] 2) 第二个for循环的范围,第一次执行它必须从索引0开始,在下一次执行中,开始索引应该是5
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)
只是想澄清一下:是否要对数组中的前五个元素和后五个元素求和?那么您是否希望在最后获得两个和(
sum\u first
和sum\u last
)?为什么要用这种非常奇怪的方式而不是通过x=np.array([1,2,3,4,5,6,7,8,9,10])来实现呢;x[:5].sum();x[5:].sum()
?事实上,我想得到总的总和。我试图对一个大数组求这个和(在另一个问题中),我需要这样做。你怎么知道I\I
没有变化i_i
在循环中未使用,因此其值没有区别。您的内循环不断重复添加x[i]
,在第一次通过外循环时,您将添加x[0]
到sum\t
5次。在循环的第二次行程中,您将添加x[1]
到sum\t
10次。因此,结果应该是5*1+10*2
,即25
,并且由于您对求和使用浮点,它将显示为25.0
。Tom Karzes,谢谢you@IgorMelo我建议检查您是否真的需要这样做,因为这既不是非常优化的方法,也不是非常稳健的方法来获取数组的和。正如你自己意识到的,因为你在所有不同的指数上犯了一个错误。也许你应该问一个关于另一个问题的问题,这个问题迫使你首先使用这个奇怪的解决方案。只是澄清一下:你想把数组中的前五个元素和后五个元素相加吗?那么您是否希望在最后获得两个和(sum\u first
和sum\u last
)?为什么要用这种非常奇怪的方式而不是通过x=np.array([1,2,3,4,5,6,7,8,9,10])来实现呢;x[:5].sum();x[5:].sum()
?事实上,我想得到总的总和。我试图对一个大数组求这个和(在另一个问题中),我需要这样做。你怎么知道I\I
没有变化i_i
在循环中未使用,因此其值没有区别。您的内循环不断重复添加x[i]
,在第一次通过外循环时,您将添加x[0]
到sum\t
5次。在循环的第二次行程中,您将添加x[1]
到sum\t
10次。因此,结果应该是5*1+10*2
,即25
,并且由于您对求和使用浮点,它将显示为25.0
。Tom Karzes,谢谢you@IgorMelo我建议检查您是否真的需要这样做,因为这既不是非常优化的方法,也不是非常稳健的方法来获取数组的和。正如你自己意识到的,因为你在所有不同的指数上犯了一个错误。也许你应该问一个关于另一个问题的问题,这个问题迫使你首先使用这个奇怪的解决方案。谢谢。事实上,我需要这样做。但现在它工作得很好。谢谢,谢谢。事实上,我需要这样做。但现在它工作得很好。非常感谢。