我的循环在哪里出错了?

时间:2012-03-24 07:38:49

标签: python loops

我已经给出了简报 - "现在编写一个程序,计算所需的最低固定月付款,以便在12个月内偿还信用卡余额。"

从本质上说,我所做的远远不是代码,它会取一个基本值(例如10个),从信用卡余额中取出(考虑到利息),如果将余额变为负数(例如付清)所需的总月数大于12,它增加了“分钟”。 (金额为每月还清),直到月数等于或低于12。

现在发生了什么,现在它正在形成这个并进入一个循环,并不断进入“其他”,而不仅仅是做当月数低于12时,它就会发生一次。http://pastebin.com/yruGDKiP

过长

我哪里错了? :/

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:        '))

startbalance = balance
minmonth = 1000
months = 0
monthlyinterest =  interest / 12

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

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

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

2 个答案:

答案 0 :(得分:1)

  1. 如果您只想显示结果,实际上已经支付了余额,那么您需要在打印前检查余额是否已经支付。

  2. 如果您在12个月内无法偿还余额,那么要查看付款的增加是否成功,您需要在再次开始“模拟”之前重置余额。

    < / LI>

    尝试制作一个单独的函数,测试给定的每月付款是否足够,并以逐渐增加的值调用它。

    虽然你真的应该,你知道,做数学而不是这个试错事业

答案 1 :(得分:0)

months = 0

while(balance > 0):
   months = months + 1
  if(months < 12):
      months = 0

也许你想写几个月&gt; 12但不是&lt;