保存for循环的结果并递增索引

时间:2013-10-21 02:22:24

标签: python

我是Python的新手,我正在编写一个程序来计算分布式力的结果。 我的方法是这样的:

force =[1,2,3,4,5]
distance =[2,3,4,5,6]

这个想法是将分布式力的任何部分分成2个三角形,其区域可以使用:

找到
lowerarea = ((distance[i+1] - distance[i]) *force[i]) * 0.5
upperarea = ((distance[i+1] - distance[i]) *force[i+1]) * 0.5

这是我的for循环找到较低的区域:

for i in range(0,len(force)):
lowerarea= (dist[i+1]-dist[i])*force[i]*0.5
print (f)

i = i+1

我显然得到索引超出范围的错误,因为d[6]不存在如何评估d[5]后如何停止循环?

另外,如何将循环f的输出保存到新变量?

谢谢!

2 个答案:

答案 0 :(得分:1)

索引超出范围的问题是因为您使用i = i+1进行了额外的增量。删除该行,因为循环已经为您执行该增量。通过将它放在那里,你将i的值推到len(force) - 1之外(正如其他人已经指出的那样是这些数组的最高索引)。

对于f,你在循环过程中根本没有使用或改变它,那么为什么要打印它或尝试存储它的值呢?该代码中的任何值都不会改变。

答案 1 :(得分:0)

为什么不创建新列表?

results = []

for (...):
   results.append(f)

您的超出范围错误是由于len(force) == 6 - 您想要len(force) - 1这一事实。