Hello,

I am working on my final project for CS101, a mortgage calculator. I am trying to calculate the amortisation schedule to easily identify when the interest is paid off, and print how many payments it will take for this to happen.

in my for-loop below, I am struggling to understand why the value of ‘principle’ is not decreasing, ie when I print out the interest payments list the numbers are the same when they should be decreasing.

See the code below:

```
#Final project from from the learn Python 3 course on Codecademy
#This is a terminal game
#that will calculate your mortgage based off user input data
print("Welcome to the mortgage calculator terminal game!")
print("Based off the information you provide us, ")
print("We will calculate your mortgage for you.")
loan_length = input("In years, how long is the length of your loan?")
loan_duration = float(loan_length)
loan_amount = input("What is the total value of your loan?")
loan_principle = float(loan_amount)
interest_rate = input("What is the annual interest rate for your loan?")
monthly_interest = float(interest_rate) / 100.0 / 12.0
no_of_payments = int(loan_duration * 12)
#interest_coumpound_rate = input("Is your interest rate \"monthly\" or \"annually?\"")
#repayment_frequency = int(input("""Input the number representing your repayment terms
#1. Monthly
#2. Annually
#25"""))
#function to calculate total monthly repayment given above input
def calc_monthly_repayments(loan_duration, loan_principle, monthly_interest):
monthly_payment = loan_principle * monthly_interest * ((1.0 + monthly_interest)**no_of_payments) / (((1.0 + monthly_interest) ** no_of_payments) - 1.0)
round_monthly = round(monthly_payment, 2)
return round_monthly
total_per_month = calc_monthly_repayments(loan_duration, loan_principle, monthly_interest)
print(f"Your total monthly payment is AU${total_per_month}.")
def calc_monthly_interest(loan_principle):
#created a variable holding total principle to have in the scope of the function
principle = loan_principle
monthly_principle = loan_principle / (loan_duration * 12)
total_payment = total_per_month * (loan_duration * 12)
total_interest = total_payment - loan_principle
monthly_interest_payment = monthly_interest * principle
principle_payments = []
interest_payments = []
for payment in range(0, (no_of_payments + 1)): #add + 1 to check the final payment is 0
principle_payments.append(monthly_principle)
interest_payments.append(monthly_interest_payment)
#reducing total principle amount after each payment
principle -= monthly_principle
#checking to see final payment is 0
print(interest_payments)
print(f"You are expected to spend a total of ${total_payment} which includes ${total_interest}")
calc_monthly_interest(loan_principle)
```

Any feedback is greatly appreciated!