Ask your own question, for FREE!
Computer Science 17 Online
OpenStudy (turingtest):

Python: Why can't I insert print statements to debug this?

OpenStudy (turingtest):

balance = 320000 annualInterestRate = 0.2 epsilon=.01 low=balance/12.0 monthlyInterestRate=annualInterestRate/12.0 high=balance*(1+monthlyInterestRate)**12/12.0 payment=(high+low)/2.0 newBalance=balance while abs(balance-newBalance)>epsilon: newBalance=balance for count in range(12): newBalance=(newBalance-payment)*(1+monthlyInterestRate) if balance>newBalance: low=payment else: high=payment payment=(high+low)/2.0 print('Lowest Payment: '+str(round(payment, 2)))

OpenStudy (turingtest):

the output is coming out too high, but I can't debug it because it only will let me put print statements in at the end for some reason. I would like to put one up between lines 9 and 10 to track the balance, and another at the end to track payment. Any ideas?

OpenStudy (konradzuse):

Why can't you debug? I'm not too sure about Python nor the editor you are using, but if you want to do things like debug you will need a good IDE, which I also recommend. I'll take a look later to see if I find a mistake tho.

OpenStudy (konradzuse):

high=balance*(1+monthlyInterestRate)**12/12.0 what's this **?

OpenStudy (konradzuse):

Also I would surround by brackets if that is what should happen. (balance*(1+monthlyInterestRate)**12)/12?? I mean I shouldn't have to tell a math wizz like you that, so I'm assuming you did this on purpose, but who knows... that ** is something I'm more konfused about :P

OpenStudy (turingtest):

The program is to use bisection search to find the minimum monthly payment required to pay off some debt "balance" within one year . high=balance*(1+monthlyInterestRate)**12/12.0 this is the maximum yearly payment could be imagining we didn't pay off anything at any month and the interest accrues by a factor of 1+monthlyInterestRate each month, then the monthly payment is given by dividing by 12 months. And yeah, I tried the parentheses bit.

OpenStudy (turingtest):

what is an IDE ?

OpenStudy (turingtest):

** raises to a power btw

OpenStudy (espex):

IDE = Integrated Development Environment

OpenStudy (turingtest):

Problem solved, I had all sorts of horrible things going on. the worst being that I defined newBalance=balance at the beginning, so the next line while abs(balance-newBalance)>epsilon was never true, so the thing wasn't even running the body of the program :P I won't type the corrected program as it is an answer to the MITx thing, but I did get it :)

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!