Question: Python Question (Financial application: loan amortization schedule) The monthly payment for a given loan pays the principal and the interest. The monthly interest is computed

Python Question

(Financial application: loan amortization schedule) The monthly payment for a given loan pays the principal and the interest. The monthly interest is computed by multiplying the monthly interest rate and the balance (the remaining principal). The principal paid for the month is therefore the monthly payment minus thenmonthly interest. Write a program that lets the user enter the loan amount, number of years, and interest rate, and then displays the amortization schedule for the loan.

Note

The balance after the last payment may not be zero. If so, the last payment should be the normal monthly payment plus the final balance.

Hint

Write a loop to display the table. Since the monthly payment is the same for each month, it should be computed before the loop. The balance is initially the loan amount. For each iteration in the loop, compute the interest and principal and update the balance. The loop may look like this:

for i in range(1, numberOfYears * 12 + 1):

interest = monthlyInterestRate * balance

principal = monthlyPayment - interest

balance = balance - principal

print(i, "\t\t", interest, "\t\t", principal, "\t\t", balance)

I tried doing this problem but didnt do it correctly right. The code below is what I did but I didnt get the full credit, the TA said that "Add Validations in the code instead of asking/expecting a valid input from user. Like values should be positive integer and all." How do i add that?

This is my code:

loanAmount = float(input("Enter loan amount, for example 120000.95: "))

numOfYears = eval(input("Enter number of years as an integer, for example 5: "))

annualInterestRate = eval(input("Enter yearly interest rate, for example 8.25: "))

monthlyInterestRate = annualInterestRate/1200

monthlyPayment = loanAmount*monthlyInterestRate / \ (1 - (pow(1 / (1 + monthlyInterestRate), numOfYears * 12)))

balance = loanAmount print("Monthly Payment:", int(monthlyPayment * 100) / 100.0) print("Total Payment:", int(monthlyPayment * 12 * numOfYears * 100) / 100.0)

print(format("Payment#", "<15s"), format("Interest", "<15s"), format("Principal", "<15s"), format("Balance", "<15s")) for i in range(1, numOfYears * 12 + 1): interest = int(monthlyInterestRate * balance * 100) / 100.0 principal = int((monthlyPayment - interest) * 100) / 100.0 balance = int((balance - principal) * 100) / 100.0 print(format(i, "<15d"), format(interest, "<15.2f"), format(principal, "<15.2f"), format(balance, "<15.2f"))

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!