The eval() Function in Python (2024)

Python supports object-oriented programming and has a concise, readable, and easy-to-learn syntax. It is no wonder that it is one of the most popular programming languages. An integral part of Python are its built-in functions.

We've written a series of articles to help you learn and brush up on the most useful Python functions. In this article, we’ll learn about Python's eval() function and how to use it.

If you are preparing for a tech interview, check out our technical interview checklist, interview questions page, and salary negotiation e-book to get interview-ready! Also, read Python String join() Method, Python Exit commands, and Type and Isinstance In Python for more content on Python coding interview preparation.

Having trained over 10,000 software engineers, we know what it takes to crack the toughest tech interviews. Our alums consistently land offers from FAANG+ companies. The highest ever offer received by an IK alum is a whopping $1.267 Million!

At IK, you get the unique opportunity to learn from expert instructors who are hiring managers and tech leads at Google, Facebook, Apple, and other top Silicon Valley tech companies.

Want to nail your next tech interview? Sign up for our FREE Webinar.

In this article, we’ll cover:

  • What Is the eval() Function in Python and What Does It Do?
  • Python eval() Function: Syntax
  • Python eval() Function: Examples
  • FAQs on The eval() Function in Python

What Is the eval() Function in Python and What Does It Do?

The eval() function in Python is a built-in function that evaluates a specified expression and executes it if it’s a legal Python statement. In simpler words, eval() evaluates the given string like a Python expression and returns a number as the result of that evaluation.

In Python, eval() works by parsing the expression argument and evaluating it as a Python expression. eval() is usually used in Python when there’s a need to either evaluate mathematical expressions or evaluate the string into code.

Python eval() Function: Syntax

eval(expression, globals, locals)

The eval() function takes up to three parameters — one necessary and two optional:

  • Expression: A string parsed and evaluated as a Python code/expression. eval() returns the result evaluated from this expression.
  • Globals (optional): A dictionary containing global parameters like available global methods and variables.
  • Locals (optional): A dictionary containing local parameters like available local methods and variables.

You can check the available methods and variables using the following command:

print(eval('dir()')

You can also make certain methods available using the following command:

from math import *# Making available certain methodsprint(eval('dir()', {'sqrt': sqrt, 'pow': pow}))

Python eval() Function: Examples

Here, we take a look at how you can use the Python function eval() next time you need it:

Code to Show a Basic Example of Evaluating a String Expression Using eval()

Here, the expression x*x+6 is evaluated using eval() in Python, where x has the value 2.

# Evaluating the input expression which is a function of x using eval, printing the value and type of evalExamplex = 2evalExample = eval("x*x+6")print(evalExample)print(type(evalExample))

Output:

10

Code to Show the Difference Between the Type and Value of eval() and input()

# To check the difference between type of input and eval (And also print their respective values)inputExample = input("Enter a numerical operation of your choice: ")print(inputExample)print(type(inputExample))evalExample = eval(input("Enter a numerical operation of your choice: "))print(evalExample)print(type(evalExample))

Input:

20*520*5

Output:

Enter a numerical operation of your choice: 20*5Enter a numerical operation of your choice: 100

Code to Evaluate a User-Given Expression

Here, the input expression x+2*x+x^2, a function of x, has been taken from the user and evaluated using eval() in Python.

inputExpression = input("Enter the expression that's a function of x: ")# Printing the value and type of input expression and xprint(inputExpression)print(type(inputExpression))x = 2print(x)print(type(x))# Evaluating the input expression which is a function of x using eval, printing the value and type of evalExampleevalExample = eval(inputExpression)print(evalExample)print(type(evalExample))

Input:

x+2*x+x^2

Output:

Enter the expression that's a function of x: x+2*x+x^2210

Code to Pass Both Globals and Locals Dictionary

Here, the expression can only have the sqrt() method and the variable number. So all the other variables and methods are unavailable.

from math import *number = 144# Making specific methods from globals and locals dictionary availableprint(eval('squareRoot(num)', {'__builtins__': None}, {'num': number, 'squareRoot': sqrt}))

Output:

12.0

Warnings When Using eval() in Python

Allowing users to input a value using eval(input()) is a security risk. The user may issue commands to change any file or even delete all the files using os.system('rm -rf *').

Found this article useful? You can learn about more Python functions in our learn folder.

FAQs on the eval() Function in Python

Q1. Differentiate between the input() and eval() functions in Python.

When taking the user’s input, if the user enters an integer input, the input function returns a string. The eval() function, however, evaluates the string as an expression and returns the result of that evaluation.

Q2. What steps does Python's eval() run to evaluate a string-based expression?

eval() first parses the expression, then compiles it to bytecode. It then evaluates as a Python expression and finally returns the result of the evaluation.

Q3. What is the use of the eval() function in Python?

The eval function evaluates the string expression and returns its value.

Q4. Should we use the Python eval() function or int?

If possible, use int instead of eval. Int doesn't have security issues and is safer, unlike eval, which can evaluate any expression, including system calls and file deletion.

Q5. What arguments does Python’s eval() function take as parameters?

In Python, eval takes up to three parameters: expression, globals (optional), and locals (optional).

Ready to Nail Your Next Coding Interview?

Whether you’re a coding engineer gunning for a software developer or software engineer role, a tech lead, or you’re targeting management positions at top companies, IK offers courses specifically designed for your needs to help you with your technical interview preparation!

If you’re looking for guidance and help with getting started, sign up for our FREE webinar. As pioneers in technical interview preparation, we have trained thousands of software engineers to crack the most challenging coding interviews and land jobs at their dream companies, such as Google, Facebook, Apple, Netflix, Amazon, and more!

Sign up now!

The eval() Function in Python (2024)
Top Articles
Latest Posts
Article information

Author: Duncan Muller

Last Updated:

Views: 5893

Rating: 4.9 / 5 (59 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Duncan Muller

Birthday: 1997-01-13

Address: Apt. 505 914 Phillip Crossroad, O'Konborough, NV 62411

Phone: +8555305800947

Job: Construction Agent

Hobby: Shopping, Table tennis, Snowboarding, Rafting, Motor sports, Homebrewing, Taxidermy

Introduction: My name is Duncan Muller, I am a enchanting, good, gentle, modern, tasty, nice, elegant person who loves writing and wants to share my knowledge and understanding with you.