не могу сообразить где ошибка?

код:

from prettytable import PrettyTable

def calc(H,W,Lo,LS):
    H=10
    q=0.8
    p=1.1
    d=115
    P=3.14*(d/2)**2/1000*p
    W=(P/q)**(0.5)
    Lo=0.5*q*W
    LS=0.9*W

Lb=[12,15,13,12,14,16,12.5,12.3,12.2,13,13.2]

def calc():
    Lc=Lb-LS
    Q=P*(Lb-LS)
    a=Q/(q*W*H)
    b=W
    Q1=Lc*0.38*P
    Q2=Lc*0.62*P
    n=66
    Qsum=n*Q
    Ss=LS*n*P*1.6
    
columns = ['Lb','Q','a','b','Q1','Q2','n','Qsum','Ss']
tab = PrettyTable(field_names=columns)
tab.add_rows([calc(Q,a,b,Q1,Q2,n,Qsum,Ss)for i in Lb])
print(tab)

Ответы (1 шт):

Автор решения: MaxU

Ошибка в том, что вы пытаетесь использовать код из ответа на ваш предыдущий вопрос, не разобравшись в решении и не понимая как работают функции в Python.

def calc(Lb, H, q, p, d, n=66):
    P=3.14*(d/2)**2/1000*p
    W=(P/q)**(0.5)
    Lo=0.5*q*W
    LS=0.9*W
    Lc=Lb-LS
    Q=P*(Lb-LS)
    a=Q/(q*W*H)
    b=W
    Q1=Lc*0.38*P
    Q2=Lc*0.62*P
    Qsum=n*Q
    Ss=LS*n*P*1.6
    return [Lb,Q,a,b,Q1,Q2,n,Qsum,Ss]

Lb=[12,15,13,12,14,16,12.5,12.3,12.2,13,13.2]

columns = ['Lb','Q','a','b','Q1','Q2','n','Qsum','Ss']
tab = PrettyTable(field_names=columns, float_format=".2")
tab.add_rows([calc(Lb=l, H=10, q=0.8, p=1.1, d=115, n=66) for l in Lb])
print(tab)

результат:

+-------+--------+------+------+-------+-------+----+---------+---------+
|   Lb  |   Q    |  a   |  b   |   Q1  |   Q2  | n  |   Qsum  |    Ss   |
+-------+--------+------+------+-------+-------+----+---------+---------+
|   12  | 98.21  | 3.25 | 3.78 | 37.32 | 60.89 | 66 | 6481.59 | 4100.61 |
|   15  | 132.47 | 4.38 | 3.78 | 50.34 | 82.13 | 66 | 8742.71 | 4100.61 |
|   13  | 109.63 | 3.63 | 3.78 | 41.66 | 67.97 | 66 | 7235.30 | 4100.61 |
|   12  | 98.21  | 3.25 | 3.78 | 37.32 | 60.89 | 66 | 6481.59 | 4100.61 |
|   14  | 121.05 | 4.00 | 3.78 | 46.00 | 75.05 | 66 | 7989.00 | 4100.61 |
|   16  | 143.89 | 4.76 | 3.78 | 54.68 | 89.21 | 66 | 9496.41 | 4100.61 |
| 12.50 | 103.92 | 3.44 | 3.78 | 39.49 | 64.43 | 66 | 6858.44 | 4100.61 |
| 12.30 | 101.63 | 3.36 | 3.78 | 38.62 | 63.01 | 66 | 6707.70 | 4100.61 |
| 12.20 | 100.49 | 3.32 | 3.78 | 38.19 | 62.30 | 66 | 6632.33 | 4100.61 |
|   13  | 109.63 | 3.63 | 3.78 | 41.66 | 67.97 | 66 | 7235.30 | 4100.61 |
| 13.20 | 111.91 | 3.70 | 3.78 | 42.53 | 69.38 | 66 | 7386.04 | 4100.61 |
+-------+--------+------+------+-------+-------+----+---------+---------+

Советую вам почитать о том как работают функции в Python и попытаться разобраться как работает код из ответа.

Это позволит вам не задавать в будущем однотипные вопросы.

→ Ссылка