Формула с инкрементной переменной на основе размера входного массива - PullRequest
0 голосов
/ 16 мая 2018

Скажем, у меня есть спиральные слои, где внутренний диаметр и количество слоев были переменными.Но количество слоев имеет обозначения (углы).Пример:

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

Я хочу вывести массив, который содержит вычисления для каждого компонента в «Слоях».В этом расчете будет использоваться идентификатор для первого компонента, а для расчета для каждого последующего компонента будет добавлен еще один слой толщиной

. Начало кода с формулой примера:

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

Я не могу понять, как увеличить идентификатор переменной на толщину в зависимости от индекса слоя.Я знаю, что мог бы легко создать другой массив, который выглядит как (20, 20.5, 21) , но я хочу оставить гибкость, чтобы входной массив 'Layer' мог иметь в себе больше или меньше компонентов.

В этом примере кто-то может предложить решение, которое будет следовать этому последнему ограничению, и вывести следующий массив (не должен быть усечен):

a = [37.27, 67.73, 43.66]

1 Ответ

0 голосов
/ 16 мая 2018

Если вы пытаетесь получить индекс для получения (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)

В противном случае, вы просто хотите добавить в идентификатор, как обычно

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