- exec() function executes Python statements stored as a String or a code object.
- The function can accept large blocks of code. In contrast, eval() function only accepts a single expression.
- The returned value of exec() function is always none.
#! /usr/bin/env python3 # -*- coding: utf-8 -*- # Execute python codes exec('print("Hello World")') # Take user's input and execute it codes = input('Please input your codes:') exec(codes)
Hello World Please input your codes: # here we input: print 'Python is great!' Python is great!
When using exec() and input() functions together in your codes, you need be careful. It is possible that users’ input can be converted to a command line. In this context, it will cause serious security problem. For example, in Unix system, if the user input “rm -rf *.txt” and this statement is taken by input() function and then executed by exec() function, all txt files in the directory of python file will be deleted.