Python exec() Function

The exec() function in Python is used to execute a block of code. Basically this function is used when we need to execute dynamically created codes. For example:

x = 'print("Python Programming")'

x = "val = 10\nprint(\"\\nThe value is:\", val)"

The snapshot given below shows its sample output:

python exec function

Note: Unlike eval(), that evaluates single dynamically generated expression. The exec() function executes dynamically generated code.

Note: Unlike eval(), exec() takes single expression as well as a block of code to execute.

Python exec() Function Syntax

The syntax of exec() function in Python is:

exec(object, globals, locals)


Note: The first parameter, object is required. And the other two parameters are optional.

Python exec() Function Example

Here is a simple example demonstrating the exec() function in Python. This program actually shows how the exec() function can be used to execute the dynamic code. In this program, user is allowed to create the code at run-time. The created code by user, will get executed dynamically:

print("Enter the Program: ", end="")
p = input()


The sample run with user input [print(2*i) for i in range(1, 11)] is shown in the snapshot given below:

python exec function example

After the user input, the following statement:


gets converted into the statement given below:

exec("[print(2*i) for i in range(1, 11)]")

Note: The input() function treats anything entered by user at run-time as a String type.

Important - To execute dynamically generated codes that are expanded in multiple lines, then use compile() method before exec() to compile the code first, then execute using of course, the exec() method. The detailed description with example about compile() function is provided in its separate tutorial.

Important - Be sure to validate the input before putting into exec() to execute. Because attacker may try to execute some harmful codes like deleting some useful files or information.

Python Online Test

« Previous Function Python Tutorial »

Liked this post? Share it!