#Operating System - Mac OS X 10.6.8 #Python Version - Python 2.6.6
##Goal: I am creating a program to calculate credit card payments. ## The user should be able to put in a credit card balance and interest ## rate, and the program will tell them what monthly payment will allow ## them to pay off the card in 1 year. Note: it should only be ## increments of $10. ##Problem: The program returns incorrent values for some inputs. ## ie ($1200 balance and 18% interest returns a value of $120.01 ## for a monthly payment. Which is fine, but it only takes 11 ## months to pay off that card, not 12. ## So, I need to try different payment values and play out the final ## balance over 12 months. But it somehow needs to be dynamic enough ## to recognize that it will not take 12 months to pay off some values ## if we only allow multiples of $10. ## I thought of scabbing something on the end that will check negative ## balances and somehow revert to the previous month but there must be ## a cleaner way of doing this. # code follows: print "This will help you pay off your credit card in under 1 year." obalance = float(raw_input("What's your balance?")) #takes user input for balance yrate = float(raw_input("What's your interest rate?")) #takes user interest rate mrate = yrate / 12.0 #creates monthly rate cbalance = obalance #this will be experimental balance based on some monthly payment gbalance = 0.0 #this is our goal balance incrementpayment = 10.0 #initial monthly payment x = 1 #our intitial month count while cbalance > gbalance: # while our experimental balance is greater than our goal of 0: for i in range (1,x+12): ppayment = incrementpayment - (cbalance * mrate) #amount of payment going to principle cbalance = cbalance - ppayment #new experimental balance after payment is applied if cbalance > gbalance: cbalance = obalance incrementpayment = incrementpayment + 10.0 #resets experimental balance if monthly payment is not enough to reach zero balance else: print "RESULT" print "Months to pay off: ",i print "Monthly Payment: $",incrementpayment print "Ending Balance: $",cbalance -- Joe
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor