Loan Calculator in Python using Tkinter

Here we are going to discuss creating a loan calculator in Python using Tkinter. Before moving in further let’s first understand what is Tkinter. Tkinter is a standard yet powerful GUI library in Python.

GUI means ‘ Graphic User Interface’ which provides a link between the user and the code running in the background. So how does it help? Tkinter provides a strong object-oriented interface that helps to create a user interface.

Python program to create loan calculator

from tkinter import *
class LoanCalculator: 

  def __init__(self): 

    window = Tk() 
    window.title("Loan Calculator")  
    
    Label(window, text = "Annual Interest Rate").grid(row = 1, 
                    column = 1, sticky = W) 
    Label(window, text = "Number of Years").grid(row = 2, 
                  column = 1, sticky = W) 
    Label(window, text = "Loan Amount").grid(row = 3, 
                column = 1, sticky = W) 
    Label(window, text = "Monthly Payment").grid(row = 4, 
                  column = 1, sticky = W) 
    Label(window, text = "Total Payment").grid(row = 5, 
                  column = 1, sticky = W) 

     
    self.annualInterestRateVar = StringVar() 
    Entry(window, textvariable = self.annualInterestRateVar, 
          justify = RIGHT).grid(row = 1, column = 2) 
    self.numberOfYearsVar = StringVar() 

    Entry(window, textvariable = self.numberOfYearsVar, 
        justify = RIGHT).grid(row = 2, column = 2) 
    self.loanAmountVar = StringVar() 

    Entry(window, textvariable = self.loanAmountVar, 
      justify = RIGHT).grid(row = 3, column = 2) 
    self.monthlyPaymentVar = StringVar() 
    lblMonthlyPayment = Label(window, textvariable =
            self.monthlyPaymentVar).grid(row = 4, 
            column = 2, sticky = E) 

    self.totalPaymentVar = StringVar() 
    lblTotalPayment = Label(window, textvariable =
          self.totalPaymentVar).grid(row = 5, 
          column = 2, sticky = E) 
    
    
    btComputePayment = Button(window, text = "Compute Payment", 
                command = self.computePayment).grid( 
                row = 6, column = 2, sticky = E) 
    window.mainloop() 


   
  def computePayment(self): 
        
    monthlyPayment = self.getMonthlyPayment( 
    float(self.loanAmountVar.get()), 
    float(self.annualInterestRateVar.get()) / 1200, 
    int(self.numberOfYearsVar.get())) 

    self.monthlyPaymentVar.set(format(monthlyPayment, '10.2f')) 
    totalPayment = float(self.monthlyPaymentVar.get())* int(self.numberOfYearsVar.get()) 

    self.totalPaymentVar.set(format(totalPayment, '10.2f')) 

  def getMonthlyPayment(self, loanAmount, monthlyInterestRate, numberOfYears):  
    monthlyPayment = loanAmount * monthlyInterestRate / (1 - (1 / (1 + monthlyInterestRate) ** (numberOfYears * 12))) 
    return (monthlyPayment) 
    r = Tk() 


LoanCalculator()

Let us understand how the code works:

The first step is to import all the libraries and the modules as per requirement.

Next, we create a class named as LoanCalculator

  1.  This class has a constructor and two methods namely computePayment and getMonthPayment
  2.  The main function of the constructor is to create the GUI table and accept values from the user.
  3.  The computePayment method accepts values from the init method and calculates the loan of the user based on the values it received.
  4.  The getMonthlyPayment method calculates the monthly payment required to fulfill the loan taken.

Finally, we create an object of the class created.

Output:

Loan calculator in Python

Also read: Efficient program to calculate e^x in Python

Leave a Reply

Your email address will not be published.