Create Calculator Using Eval in Python

Create Calculator Using Eval in Python
(Last Updated On: 08/09/2023)

The eval() function evaluates a string as a Python expression. This makes it a convenient tool for creating a calculator as it can take user input as a string and evaluate it as a mathematical expression. When you write code in Python, it’s important to understand what eval does.

This is because you need to be aware of its behaviours so that you can write programs that do what they’re meant to do without causing errors or other problems.

Also Read: Python Program to Make a Simple Calculator

How to create Calculator using Eval in Python

Calculators are one of the most widely used tools in our daily lives. They perform basic arithmetic operations like addition, subtraction, multiplication, and division. In this article, we will learn how to create a simple calculator using Python’s eval() function.

eval() is a built-in Python function that evaluates an expression or a string as a valid Python expression. This means that it takes a string of code and executes it as if it were written in Python.

Here is the code for a simple calculator that performs basic arithmetic operations:

Video Explanation to create a calculator using Eval in python

Python Program to Create a calculator using Eval

The code starts with an empty string choice and enters a while loop that runs indefinitely until the user inputs ‘e’ for the exit. Inside the loop, the available operations for the calculator are displayed. The user has then prompted to input a choice.

The if statement checks if the choice is equal to ‘e’. If it is, the program displays a message thanking the user for using the calculator and breaks out of the loop.

If the choice is not ‘e’, another if statement checks if the choice is one of the operations (+, -, *, /). If the choice is a valid operation, the user is prompted to input two numbers. These numbers are stored in variables x and y.

The expression exp is created by concatenating the variables x, choice, and y. The eval() function is then used to evaluate the expression and the result is stored in the variable sln. The result is displayed to the user.

If the choice is not a valid operation, an “Invalid Choice” message is displayed. The loop continues to run until the user inputs ‘e’ for the exit.

Here is the complete code for our calculator:

choice = ""
while(1):
    print("+ for addition")
    print("- for subtraction")
    print("* for multiplication")
    print("/ for division")
    print("e for exit")
    
    choice = input("Enter Choice:")
    
    if choice == 'e':
        print("Thanks for using the calculator")
        break
    
    if choice == '+' or choice == '-' or choice == '*' or choice == '/':
        x = input("Enter first number")
        y = input("Enter second number")
        exp = x + choice + y
        sln = eval(exp)
        print(sln)
    else:
        print("Invalid Choice")

Handle Exceptions

It is important to handle exceptions when using the eval() function. If the user inputs an invalid expression, the eval() function will raise a SyntaxError exception. We can use a try-except block to handle this.

Output:
+ for addition
- for subtraction
* for multiplication
/ for division
e for exit
Enter Choice:*
Enter first number5
Enter second number10
50

This tutorial has given a basic introduction to Python, including the basics of programming and data structures. The eval() function is used in this example so that you can run your program right away instead of having to type all the code by hand.

In conclusion, eval() is a powerful function in Python that can be used to evaluate expressions or strings as valid Python code. It is important to be careful when using eval() with untrusted inputs as it can pose security risks.

The code for this simple calculator can be used as a starting point for building more complex calculators using python. Thus by using this code you can create a calculator using Eval in Python. Happy Learning!

For More Python Programming Exercises and Solutions check out our Python Exercises and Solutions