2012-05-05 3 views
1

の入力として1つのループの出力を使用して、私は私がループにしたい、本当に基本的な計算があります。Pythonでループには2つのパラメータを、次のループ

month = 1 
carryK = 104800 #Carrying capacity as per Q0 
redcarryK = 0.998 #amount to reduce the carrying capacity to as given in part 4 
newcarryK = (carryK*redcarryK) 

を私は12ヶ月のサイクルをループこの計算をしたいですその結果、month1のnewcarryKはmonth2のcarryKになります。

私が試したことは、同じ回答の出力が12回あることです。

while month <=12: 
    print newcarryK 
    month = month + 1 
+1

アドオン 'newcarryK =(newcarryK * redcarryK) 'newcarryK'の代わりに単に' carryK'を使用してください。ループ内の値を更新する必要があります。 – okm

+0

華麗な、ありがとう - それはいつも私にひっくり返す本当に簡単なものです! :-( – newtopython

+0

これが宿題の場合は、必ず宿題タグを追加してください! – Cam

答えて

0

newcarryk計算が見当たりません。

while month <=12: 
    print newcarryK 
    newcarryK = (newcarryK*redcarryK) 
    month = month + 1 
0

注意深く見てみると、この計算は古典的な複利計算です。わかりやすくするためcarryK = predcarryK == rを再定義しましょう。各月の今

、計算が進むにつれて:私はあなたがパターンを見ると思い

month 1 --> p * r 
month 2 --> p * r ** 2 
month 3 --> p * r ** 3 
month 4 --> p * r ** 4 

。あなたが使用しているプログラムは非常にtraditinal手続き的な方法です。よりPython的な方法は、以下のようになります。

p = 104800 
r = 0.998 
vals = [ p * r ** i for i in range(1, 13)] 

のPythonを学んで、大幅に読みやすさを向上させ、リストの内包表記などを使用しようとし...

``印刷newcarryK以下
関連する問題