2017-02-20 8 views
0

これは私の最初の投稿です。 私は一般的なプログラミングの初心者です。 プログラミングを学ぶ最も良い方法はプログラミングを始めることです。したがって、私は次の表に遭遇したと私はx座標に関連して相対的な動きを計算することができるように関数を作りたいと思います。この数式を書くにはどうしたらいいですか?

相対運動テーブル{C_B、N、C、L}は、iは下記のような表を符号化しているが知られていると仮定し

enter image description here

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

この機能を書くには "Python"の方法だけでなく、プログラミングの実践上の問題があります。私の見解からは、各ステップを適切に命名されたルーチンに分けて、単一の文字変数ではなく、その意味に従って各値に名前を付けることをお勧めします。

+0

Chazeonに例を挙げてください。私はそれをよりよく理解できるでしょうか? –

関連する問題