eval()与exec()就是相当于
evaluate 是把一个字符串当成一个表达式求值,而且这个字符串还可以包含表示变量的字母。仅能处理字符串里面的表达式。
你会想,你直接写这行字符串,也能输出其值。为啥还要用eval。
当你得到的字符串不含可变变量(例如3+4-5**6),顺便还想知道其值,那就用eval临时算一下
a = 3
b = eval('a**2+10')
execute 是把一个字符串当成一个语句来执行,适用于序列命名。例如a1,a2,a3...其实是a加上一个可变变量。相比eval(),它则是处理字符串里面的代码
e = [2]
exec('b'+str(e[0])+' = a**2 ')
print b2
具体见
https://www.jianshu.com/p/49fcc8c95a58