編輯:下面是基於我收到的反饋/答案的工作代碼。在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