2012-03-23 1 views
0

私は一方で問題を解決しようとしているが、私は私が持っているループがどこかミッシングリンクを持っている感じ...ループの中で 'if'を持つには?

私が与えられてきた簡単な - 「今すぐ計算するプログラムを書きます12ヶ月以内にクレジットカードの残高を払い戻すために最低限の月額支払いが必要」

本質的に私がやったことは、基本価値(例えば10)をとり、クレジットカードの残高から控除して(利子を考慮して)残高をマイナス(例えば払い戻し)にするのに要した月数は12を超えているため、月数が12以下になるまで「分」(月額払い戻し額)に加算されます。

前もって謝罪していますが、私は文字通り2日間Pythonを学習していました!

どこが間違っていますか?

balance = float(raw_input('Enter the outstanding balance on your creditcard: ')) 
interest = float(raw_input('Enter the annual credit card interest rate as a decimal:  ')) 

minmonth = 10 
months = 0 
monthlyinterest = interest/12 

while(balance > 0): 
    balance = balance * (1 + monthlyinterest) - minmonth 
    months = months + 1 

    if(months > 12): 
     months = 0 
     minmonth = minmonth + 10 

else: 
    print 'RESULT!' 
    print 'Total amount to pay per month would be' 
    print minmonth 
    print 'Total amounts to pay' 
    print months 
+0

コードをコンパイルすると、 'IndentationError'がスローされます。インデントに問題があるのは、pythonが大きく依存しているためです。 – RanRag

+2

@RanRag:そうではありません。文をループした後に分岐条件を設定することはできますが、 'for'ループの後で分岐条件を見るのが一般的です。 – Makoto

答えて

5

インデントはPythonでは重要です。コード内のifステートメントに沿ってelseを呼び出すことをお勧めします。

4

あなたの "else"はあなたの "if"と並んでいません。 Pythonはループとステートメントのスコープを認識するのに完全な字下げが必要です。

私ははっきりと指摘しなかったTimのコメントを追加するには編集してください: "目的に役立つ明示的なbegin/endステートメントまたは中括弧{}の代わりにインデントを必要とするため、他の言語でコードをグループ化する

+1

真ではあるが、追加する価値があるのは、他の言語でコードをグループ化する目的に役立つ明示的なbegin/endステートメントや中括弧{}の代わりにインデントを使用するためです。 – TimothyAWiseman

関連する問題