2016-09-27 2 views
-1

私はPythonで予期せぬ結果を得ています。出力は440になるはずですが、370になるので、私のループには何かが見当たりません。予期せぬ答えを返すPython 3.5

残高が払われていない場合は、利息()が支払われる金額(mp)には、利息()を考慮した残高

私の現在のコードは、私はそんなにコード修正を捜しているわけではない

b = 4773 
air = 0.2 


mir = air/12.0 
m = 1 
mp = 10 


while m in range(0,12): 

    ub = b - mp 
    b = ub + (mir * ub) 
    cb = b 
    m += 1 
    if cb> 0: 
     mp += 10 
     m = 0 

print(str(mp)) 

ですが、私は間違っているつもりですどこの説明と、私はそれを修正するをご覧ください。私はコードが走っているのを見ることができ、うまくループします。予期せぬ答えで終わってしまったので、何かが足りなくなっています。私は、Pythonを学ぶために、それは単なる修正よりも私を助けるだろうしようとしています:)

+1

は構文の一部です。表示されたコードスニペットにブロックが適切にインデントされていることを確認してください。 'if cb> 0:'の下の行は、特に疑わしいにおいがします。 –

+0

明白な意味を持つ名前を使用した場合、他の人があなたのコードを*巨大な量だけ理解するのに役立ちます。私はこれが複合金利計算機のようなものだと推測していますが、変数の多くは完全に不透明なので、なぜあなたが行っている計算をしているのか分かりません。 – Blckknght

+0

if文のインデントがオフです。少なくとも次の行はもう1つレベルをインデントする必要があります。 –

答えて

0

あなたはコメントに書いた:

を公式アカウントの関心を考慮してバランスを完済するために、固定支払額を計算して、残高が返済されない場合は、各ループごとに10ずつ支払いを増やします。

私は以下を行います。 (私はあなたの変数説明的な名前を与えることを試みた。)

balance = 4773 
annual_interest_rate = 0.2 
monthly_interest_rate = annual_interest_rate/12 
number_of_payments = 0 
payment = 10 

while balance > 0: 
    number_of_payments += 1 
    balance -= payment 
    balance += balance * monthly_interest_rate 
    print(number_of_payments, payment, balance) 
    payment += 10 

この出力は:Pythonのインデントで

1 10 4842.38333333 
2 20 4902.75638889 
3 30 4953.96899537 
4 40 4995.86847863 
5 50 5028.29961994 
6 60 5051.1046136 
7 70 5064.12302383 
8 80 5067.19174089 
9 90 5060.14493657 
10 100 5042.81401885 
11 110 5015.02758583 
12 120 4976.61137893 
13 130 4927.38823524 
14 140 4867.17803917 
15 150 4795.79767315 
16 160 4713.0609677 
17 170 4618.7786505 
18 180 4512.75829467 
19 190 4394.80426625 
20 200 4264.71767069 
21 210 4122.29629853 
22 220 3967.33457018 
23 230 3799.62347968 
24 240 3618.95053767 
25 250 3425.0997133 
26 260 3217.85137519 
27 270 2996.98223144 
28 280 2762.26526863 
29 290 2513.46968978 
30 300 2250.36085127 
31 310 1972.7001988 
32 320 1680.24520211 
33 330 1372.74928881 
34 340 1049.96177696 
35 350 711.627806573 
36 360 357.488270016 
37 370 -12.7202588168 
+0

印刷を追加すると多くの作業に役立ちます。私はやり直して、これをもう一度やります。私はPythonの初心者ですので、今すぐ試行錯誤がたくさんあります! – answrseeker

関連する問題