exec和eval用来执行字符串及计算结果
提示:这两个函数会存在严重的安全隐患,特别运行未知的代码
1.exec将字符串作为代码执行
exec('print(3)')
3
2.evalj计算字符串的表达式的值
eval('1+2')
Out[88]: 3
另外,exec直接求值是无输出的
exec('1+2')
但是,这样却可以
exec('print(1+2)')
3
一般地,为了安全起见,需要向exec和eval提供一个命名空间,而不是全局命名空间
scope ={}
scope['a'] = 2
scope['b'] = 3
eval('a**b',scope)
Out[89]: 8