Currency Converter in Python

2594 views
optmiize_your_resume_1
Currency Converter in Python

Hope you are doing great!

Today, We are going to see how can we create a Currency Converter in Python.

For this, we need the tkinter module and currency converter module.

Tkinter is the standard GUI library for Python. Python when combined with Tkinter provides a fast and easy way to create GUI applications.

CurrencyConverter is a module used to convert one currency into another in order to check its corresponding value using the European Central Bank data.

To install tkinter module python, type the below command in your terminal–

pip install tkinter
Code language: Python (python)

To install CurrencyConverter module python, type the below command in your terminal–

Currency Converter in Python
pip install CurrencyConverter
Code language: Python (python)

Source Code With Comments

# Python Project on Currency Converter import requests from tkinter import * import tkinter as tk from tkinter import ttk class RealTimeCurrencyConverter(): def __init__(self, url): self.data = requests.get(url).json() self.currencies = self.data['rates'] def convert(self, from_currency, to_currency, amount): initial_amount = amount if from_currency != 'USD': amount = amount / self.currencies[from_currency] # limiting the precision to 4 decimal places amount = round(amount * self.currencies[to_currency], 4) return amount class App(tk.Tk): def __init__(self, converter): tk.Tk.__init__(self) self.title = ('Currency Converter') self.currency_converter = converter self.geometry("600x300") self.configure(bg="#F22546") # Label self.intro_label = Label(self, text = 'Welcome to Real Time Currency Convertor', fg = 'blue', relief = tk.RAISED, justify = tk.CENTER, borderwidth = 3) self.intro_label.config(font = ('Manrope',15,'bold')) self.date_label = Label(self, text = f"1 Indian Rupee equals = {self.currency_converter.convert('INR','USD',1)} USD \n Date : {self.currency_converter.data['date']}", relief = tk.GROOVE, borderwidth = 2) self.intro_label.place(x = 40, y = 5) self.date_label.place(x = 150, y= 50) # Entry box valid = (self.register(self.restrictNumberOnly), '%d', '%P') self.amount_field = Entry(self, bd = 3, relief = tk.RIDGE, justify = tk.CENTER, validate='key', validatecommand=valid) self.converted_amount_field_label = Label(self, text = '', fg = 'black', bg = 'white', relief = tk.RIDGE, justify = tk.CENTER, width = 18, borderwidth = 3) # dropdown self.from_currency_variable = StringVar(self) self.from_currency_variable.set("INR") # default value self.to_currency_variable = StringVar(self) self.to_currency_variable.set("USD") # default value font = ("Manrope", 12, "bold") self.option_add('*TCombobox*Listbox.font', font) self.from_currency_dropdown = ttk.Combobox(self, textvariable=self.from_currency_variable, values=list(self.currency_converter.currencies.keys()), font = font, state = 'readonly', width = 15, justify = tk.CENTER) self.to_currency_dropdown = ttk.Combobox(self, textvariable=self.to_currency_variable, values=list(self.currency_converter.currencies.keys()), font = font, state = 'readonly', width = 13, justify = tk.CENTER) # placing self.from_currency_dropdown.place(x = 30, y= 120) self.amount_field.place(x = 30, y = 150) self.to_currency_dropdown.place(x = 340, y= 120) self.converted_amount_field_label.place(x = 340, y = 150) # Convert button self.convert_button = Button(self, text = "Convert", fg = "black", command = self.perform) self.convert_button.config(font=('Manrope', 12, 'bold')) self.convert_button.place(x = 225, y = 135) def perform(self): amount = float(self.amount_field.get()) from_curr = self.from_currency_variable.get() to_curr = self.to_currency_variable.get() converted_amount = self.currency_converter.convert(from_curr,to_curr,amount) converted_amount = round(converted_amount, 2) self.converted_amount_field_label.config(text = str(converted_amount)) def restrictNumberOnly(self, action, string): regex = re.compile(r"[0-9,]*?(\.)?[0-9,]*$") result = regex.match(string) return string=="" or (string.count('.')<=1 and result is not None) if __name__ == '__main__': url = 'https://api.exchangerate-api.com/v4/latest/USD' converter = RealTimeCurrencyConverter(url) App(converter) mainloop()
Code language: Python (python)

Output of Currency Converter in Python

ThankYou Pythoner’s!!! 🙂

Check out more python projects

20%off for Ink 280 281

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More