具有基于输入数组大小的递增变量的公式

时间:2018-05-16 06:44:02

标签: python function increment

假设我有一个螺旋层,其中内径和层数是可变的。但层数有指定(角度)。 示例:

ID = 20
Layers = (45, 60, 30)
Layer_thickness = 0.5 

我想输出一个数组,其中包含'Layers'中每个组件的计算。此计算将使用第一个组件的ID,并且对于每个前进组件的计算将添加另一个厚度层

带有示例公式的代码的开头是:

a = []    
    for n, i in Layers:
        a0 = abs((math.pi*ID) / math.tan(math.radians(i)))
        a.append(a0)

我无法弄清楚如何根据图层的索引增加变量ID的厚度。我知道我可以很容易地创建另一个看起来像(20,20.5,21)的数组但是我想保留输入数组'Layer'可以有更多或更少组件的灵活性。

对于这个例子,有人可以提出一个解决方案,该解决方案将遵循最后一个约束并输出以下数组(不必截断):

a = [37.27, 67.73, 43.66]

1 个答案:

答案 0 :(得分:0)

如果您尝试获取索引以生成(20, 20.5, 21),请尝试

ID = 20
Layers = (45, 60, 30)
Layer_thickness = 0.5 

for i, layer in enumerate(Layers):
    value = i*Layer_thickness + ID
    print(value, layer)

否则,您只是想要添加到ID,就像正常

一样
for layer in Layers:
    value = ID
    print(value, layer) 
    ID += Layer_thickness