2017-02-20 8 views
0

Это мой первый пост в stackoverflow.com. Я новичок в питоне и в программировании вообще. Я читал везде, что лучший способ научиться программированию - начать программирование. Поэтому я столкнулся с следующей таблицей, и я хотел бы сделать функцию, чтобы я мог рассчитать относительное движение относительно x-координаты.Что такое питонический способ написать эти математические формулы?

относительно таблицы движения

enter image description here

при условии, что {C_b, N, C, L}, как известно, я закодированы таблицу следующим образом:

if x = 0: 
    h1_M = 0.42*n*C*(C_b+0.7) 

    if C_b < 0.875: 
     h1 = 0.7*((4.35/sqrt(C_b))-3.25)*h1_M 
    else: 
     h1 = h1_M 

elif x>0 and x<0.3*L: 

    h1_M = 0.42*n*C*(C_b+0.7) 
    h1_AE = 0.7*((4.35/sqrt(C_b))-3.25)*h1_M 
    h1 = h1_AE - ((h1_AE-h1_M)/0.3)*(x/L) 

elif x>=0.3*L and x<0.7*L: 

    h1 = 0.42*n*C*(C_b+0.7) 

elif x>0.7*L and x<L: 
    h1_M = 0.42*n*C*(C_b+0.7) 
    h1 = h1_M + ((h1_FE - h1_M)/0.3)*((x/L)-0.7) 

elif x==L: 
    h1_M = 0.42*n*C*(C_b+0.7) 
    h1 = ((4.35/sqrt(C_b))-3.25)*h1_M 

Является ли это вещий способ структурирования моей функции? Благодарим вас

+0

'if x = 0:' не будет работать, вам нужно проверить на равенство с '=='. – roganjosh

+1

Вы можете заменить 'x> 0 и x <0.3 * L' на' 0 Elmex80s

+0

Может ли x быть ниже 0? Какие переменные вы будете использовать позже? –

ответ

0
def your_funcion(C_b, n, C, L): 
    h1_M = 0.42*n*C*(C_b+0.7) 
    if x == 0: 
     if C_b < 0.875: 
      return 0.7*((4.35/sqrt(C_b))-3.25)*h1_M 
     return h1_M 
    if x < 0.3*L: 
     h1_AE = 0.7*((4.35/sqrt(C_b))-3.25)*h1_M 
     return h1_AE - ((h1_AE-h1_M)/0.3)*(x/L) 
    if x < 0.7*L: 
     return 0.42*n*C*(C_b+0.7) 
    if x < L: 
     return h1_M + ((h1_FE - h1_M)/0.3)*((x/L)-0.7) 
    return ((4.35/sqrt(C_b))-3.25)*h1_M 

h1 = your_function(C_b, n, C, L) 
0

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

+0

Chazeon, пожалуйста, укажите пример, чтобы я мог лучше понять его? –

Смежные вопросы