编辑:下面是基于我收到的反馈/答案的工作代码。在for循环中计算运行总数 - Python
这个问题源于我以前使用MIT开放课件学习Python/CS时出现的问题。 - See my previous question here -
我使用下面的代码来制作月付款和其他东西的列表。然而,在循环结束时,我需要为每个月支付的总金额计算总计。
原始代码
balance = float(raw_input("Outstanding Balance: "))
interestRate = float(raw_input("Interest Rate: "))
minPayRate = float(raw_input("Minimum Monthly Payment Rate: "))
for month in xrange(1, 12+1):
interestPaid = round(interestRate/12.0 * balance, 2)
minPayment = round(minPayRate * balance, 2)
principalPaid = round(minPayment - interestPaid, 2)
remainingBalance = round(balance - principalPaid, 2)
print 'Month: %d' % (month,)
print 'Minimum monthly payment: %.2f' % (minPayment,)
print 'Principle paid: %.2f' % (principalPaid,)
print 'Remaining balance: %.2f' % (remainingBalance,)
balance = remainingBalance
if month in xrange(12, 12+1):
print 'RESULTS'
print 'Total amount paid: '
print 'Remaining balance: %.2f' % (remainingBalance,)
的问题是,我一直无法弄清楚如何保持一个运行总计支付的数额。我试着加入totalPaid = round(interestPaid + principalPaid, 2)
,但是总共只有一个月,我似乎无法让它保持每个月的价值,然后将它们全部加到最后打印出来。
我也知道,所产生的量应该是这样,当每个值是知道的,通过列表的1131.12
我发现有很多的例子,但我似乎无法正确推断出。
固定码
balance = float(raw_input("Outstanding Balance: "))
interestRate = float(raw_input("Interest Rate: "))
minPayRate = float(raw_input("Minimum Monthly Payment Rate: "))
totalPaid = 0
for month in xrange(1, 12+1):
interestPaid = round(interestRate/12.0 * balance, 2)
minPayment = round(minPayRate * balance, 2)
principalPaid = round(minPayment - interestPaid, 2)
remainingBalance = round(balance - principalPaid, 2)
totalPaid += round(minPayment, 2)
print 'Month: %d' % (month,)
print 'Minimum monthly payment: %.2f' % (minPayment,)
print 'Principle paid: %.2f' % (principalPaid,)
print 'Remaining balance: %.2f' % (remainingBalance,)
balance = remainingBalance
if month in xrange(12, 12+1):
print 'RESULTS'
print 'Total amount paid: %.2f' % (totalPaid,)
print 'Remaining balance: %.2f' % (remainingBalance,)
你为什么不更新**`totalPaid`?为什么你将它设置为一个新的价值?为什么不在表达式中包含`totalPaid`? – 2011-02-14 22:13:12