Редактировать: Ниже приведен мой рабочий код на основе полученных отзывов / ответов.
Этот вопрос вытекает из моего предыдущего вопроса, который возник при изучении Python / CS с использованием открытого учебного программного обеспечения из MIT. - Смотрите мой предыдущий вопрос здесь -
Я использую следующий код для составления списка ежемесячных платежей и прочего. Однако в конце цикла мне нужно дать промежуточную сумму для общей суммы, выплаченной за месяцы.
Оригинальный код
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,)