eval函数把一个字符串作为参数并返回它作为一个Python表达式的结果。
eval函数只能用于简单的表达式。
>>> eval('10 * 10')
100
>>> eval('print("Hello,World")')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
print("Hello,World")
^
SyntaxError: invalid syntax
通过上面的输出结果可以发现,复杂一点的表达式就不可以计算。
eval函数常用于把用户输入转化为Python表达式。
>>> x = raw_input('Enter:')
Enter:10 * 50
>>> eval(x)
500
exec函数和eval差不多,但是它可以运行更复杂的程序。两者的不同之处在于eval最终返回的是一个值,而exec则不会。
>>> x = '''print('Hello,'),
... print('World')'''
>>> exec(x)
Hello, World