我是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
的输出保存到新变量?
谢谢!
答案 0 :(得分:1)
索引超出范围的问题是因为您使用i = i+1
进行了额外的增量。删除该行,因为循环已经为您执行该增量。通过将它放在那里,你将i的值推到len(force) - 1
之外(正如其他人已经指出的那样是这些数组的最高索引)。
对于f
,你在循环过程中根本没有使用或改变它,那么为什么要打印它或尝试存储它的值呢?该代码中的任何值都不会改变。
答案 1 :(得分:0)
为什么不创建新列表?
results = []
for (...):
results.append(f)
您的超出范围错误是由于len(force) == 6
- 您想要len(force) - 1
这一事实。