DEV Community

Cover image for Currency Converter with Python

Currency Converter with Python

Swapan Roy
A passionate, curious and life long learner.
Updated on ・2 min read

With COVID surging, enjoying the weekend with outdoor recreation has become a challenge. Last weekend, my better half was converting USD into multiple currencies.


  1. Create a space for user input ( in our case USD is the base currency that needs to be converted into other currencies)
  2. Use API to fetch data and parse it.
  3. Present the data on the UI screen.

Below is the process that I followed
• Using Python 3.9 (Latest version) -download here
• Use tkinter library for UI (pip install tkinter )
• Use request library to pull data via API
• Create buttons like “Convert” to fetch data and Clear to erase the content

Final Output

When the program starts

When user inputs numeric value and convert button is hit

Code Snippet

Laying out the labels on the tkinter grid.
# Create a Label widget with "USD" as label
    l0 =Label(window,text="USD")
    l0.grid(row=0,column=0) # The Label is placed in 
    position 0, 0 in the window

   l1 = Label(window,text="INR")
   l1.grid(row=1,column=0) # The Label is placed in position 
   1, 0 in the window
   l2 = Label(window,text="GBP")
   l2.grid(row=1,column=1) # The Label is placed in position 
   1, 1 in the window


  e2 = Entry(window,textvariable=e2_value)  # Create an 
  Entry box for users to enter the value

  # Create a button widget
  # The from_currency() function is called when the button 
   is pushed
  b1 = Button(window,text="Convert",command=from_currency)

  # The delete function is called when the button is pushed
   b2 = Button(window,text="Clear",command=delete)

   # Create four empty text boxes, t1, t2, t3 and t4 for 
   values to show up
  t1 = Text(window,height=1,width=20)

Fetch Data via URL 
  # Where USD is the base currency you want to use
  url = ''

  # Making our request
  response = requests.get(url)
  data = response.json()

 # Your JSON object
Enter fullscreen mode Exit fullscreen mode


def from_currency():
# Get user value from input box and multiply by today's 
conversion rate to  get INR and round it to 2 decimals
    rupees = round(float(e2_value.get()) * 

# Get user value from input box and multiply by today's conversion rate to get GBP
    pound = round(float(e2_value.get())*data['conversion_rates']['GBP'],2)


  Empty the Text boxes if they had text from the previous 
 use and fill them again
    t1.delete("1.0", END)  # Deletes the content of the Text 
    box from start to END


def delete():
   # Deletes content from t1 Text box
  t1.delete("1.0", END)

  # Deletes content from t2 Text box
  t2.delete("1.0", END)
Enter fullscreen mode Exit fullscreen mode

Code in Github.

Reach me on my Twitter

Note: Thanks to John McArthur for this photo via @unsplash 🎁

Other item to look into:

Discussion (3)

pvpzonevc profile image

Quite an interesting one I must admit. I thought about creating a forex calculator the same way. And you gave me some clues so now it should be much easier. Such useful tools are really interesting to build and use further because you can just add all the features that you want if you can handle it.

swapanroy profile image
Swapan Roy Author

Glad you liked it :)

johnyrockquid profile image

It is an excellent innovation that you have programming, although you should check if you can enter the value of the crypto so that it is a more useful code than it is, you can review this page , the safest thing that will help you to see how much the price is purchase and sale of different crypto or, where appropriate, change the ones you already have.