Hello and welcome to this tutorial! This is the third tutorial in the Streamlit tutorial series. So far in the first two tutorials, we have had an introduction to Streamlit and learned how to install Streamlit, create a ‘Hello World’ app, text elements, and widgets available in Streamlit, and also how to style our app by using Theming in Streamlit.
We highly recommend you go through the following tutorials if you haven’t already:
Creating a Calculator App using Streamlit
Now that we know all of this, we must practice what we have learned before moving forward. So, in this tutorial, we will develop a simple calculator application by applying the knowledge of the concepts we have learned now. So let us begin!
Step 1: Create the basic app
Create a file Python file in your favorite IDE. You can name it anything. Here, the file name is calculator.py
.
import streamlit as st
st.title("Calculator App using Streamlit")
# creates a horizontal line
st.write("---")
Here we have first just imported Streamlit and added a title to our app. Also, below the title, we have added a horizontal line in order to separate the title from the below section.
Remember that we can run the app using the command:
streamlit run calculator.py
The basic app looks like this:

Step 2: Accept user input
Since we are building a calculator we want our user to be able to enter the numbers to perform operations on. Let’s do this.
# input 1
num1 = st.number_input(label="Enter first number")
# input 2
num2 = st.number_input(label="Enter second number")

As we want to perform operations on numbers, we have used the numeric_input()
input widget. You can learn more about it here. So we have created two input fields num1
and num2
that we will be using.
Step 3: Add mathematical operations
Now that we have the input, let us add the operations that the user can perform on it. Since we want to perform only one operation at a time on the inputs, we will radio buttons to provide the options, as radio buttons allow only one selection at a time.
st.write("Operation")
operation = st.radio("Select an operation to perform:",
("Add", "Subtract", "Multiply", "Divide"))
The radio button has a label and an options list that lists out all the operations that we can possibly allow the user to perform. This list is not exhaustive and can be customized as per your requirements.

Step 4: Add the functionality to the calculator
We have the inputs as well as the operations. Now we need to define how both of these will work together. We shall create a function named calculate
that performs the operation according to the input and operation selected by the user.
ans = 0
def calculate():
if operation == "Add":
ans = num1 + num2
elif operation == "Subtract":
ans = num1 - num2
elif operation == "Multiply":
ans = num1 * num2
elif operation=="Divide" and num2!=0:
ans = num1 / num2
else:
st.warning("Division by 0 error. Please enter a non-zero number.")
ans = "Not defined"
st.success(f"Answer = {ans}")
We have first created a variable ans
to store the result. The calculate
function just checks which operation was selected by the user from the options list and performs the action accordingly.
One thing to note is that division by zero is not defined. So when the Divide operation is selected, we need to first check if the second input is 0. If so, give a warning message that this conveys that this operation is not possible, otherwise just perform the division.
After the successful completion of the operation, we display the result using a success status element from Streamlit.
Step 5: Add the calculate button
To see the logic written in the above step in action, we need a calculate button. So let us add it.
if st.button("Calculate result"):
calculate()
When the button is clicked, the answer will be calculated and displayed on the screen.

Complete Code for Building a Calculator in Streamlit
import streamlit as st
st.title("Calculator App using Streamlit")
# creates a horizontal line
st.write("---")
# input 1
num1 = st.number_input(label="Enter first number")
# input 2
num2 = st.number_input(label="Enter second number")
st.write("Operation")
operation = st.radio("Select an operation to perform:",
("Add", "Subtract", "Multiply", "Divide"))
ans = 0
def calculate():
if operation == "Add":
ans = num1 + num2
elif operation == "Subtract":
ans = num1 - num2
elif operation == "Multiply":
ans = num1 * num2
elif operation=="Divide" and num2!=0:
ans = num1 / num2
else:
st.warning("Division by 0 error. Please enter a non-zero number.")
ans = "Not defined"
st.success(f"Answer = {ans}")
if st.button("Calculate result"):
calculate()
Playing around with our calculator app
Let us now give some input and see the results.
Adding numbers

Subtracting numbers

Multiplying numbers

Dividing numbers

Divide by Zero

Conclusion
Yay! So we have successfully our first calculator using Streamlit. This is a basic calculator. You can try to customise it as you would like to. Do check out more tutorials of this series and Python-related concepts here.