Skip to content
Related Articles
Open in App
Not now

Related Articles

Execute a String of Code in Python

Improve Article
Save Article
Like Article
  • Difficulty Level : Basic
  • Last Updated : 22 Feb, 2023
Improve Article
Save Article
Like Article

Given few lines of code inside a string variable and execute the code inside the string. 
Examples: 
 

Input:
code = """ a = 6+5
           print(a)"""
Output:
11
Explanation:
Mind it that "code" is a variable and
not python code. It contains another code, 
which we need to execute.

Input:
code = """ def factorial(num):
               for i in range(1,num+1):
                   fact = fact*i
               return fact
           print(factorial(5))"""
Output:
120
Explanation:
On executing the program containing the 
variable in Python we must get the result 
after executing the content of the variable.

Here we use the exec() function to solve the code contained inside a variable. exec() function is used for the dynamic execution of Python code. It can take a block of code containing Python statements like loops, class, function/method definitions and even try/except block. This function doesn’t return anything. The code below solves the problem and explains the exec() function. 
 

Python3




# Python program to illustrate use of exec to
# execute a given code as string.
 
# function illustrating how exec() functions.
def exec_code():
    LOC = """
def factorial(num):
    fact=1
    for i in range(1,num+1):
        fact = fact*i
    return fact
print(factorial(5))
"""
    exec(LOC)
     
# Driver Code
exec_code()

Output: 
 

120

Use eval()
 

Another approach to execute a string of code in Python is to use the eval() function. This function is similar to exec(), but it evaluates a string of code and returns the result.

Here is an example of using eval() to execute a string of code:

Python3




code = '6+5'
result = eval(code)
print(result)  # Output: 11

 Output:

11

Time Complexity: O(1)

Auxiliary space: O(1)

Like exec(), eval() can be used to evaluate any valid Python expression, not just simple arithmetic operations. For example:

Python3




code = '"hello" + "world"'
result = eval(code)
print(result)  # Output: "hello world"
 
code = '["a", "b", "c"][1]'
result = eval(code)
print(result)  # Output: "b"

Output:

helloworld
b

Note that eval() can be a security risk if you are evaluating code from an untrusted source, as it allows the execution of any Python expression. In such cases, it is recommended to use exec() instead, or to parse the code and evaluate it piece by piece in a controlled manner.

This article is contributed by Chinmoy Lenka. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 


My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!