python exec() 菜鸟教程上的例子,最后一个结果为34的看不懂,求教

如题

第1个回答  2018-09-14
exec(expr, {'x':1,'y':2}) 这句很明显:30+1+2=33
exec(expr, {'x':1,'y':2}, {'y':3,'z':4})这句:
x传入的是1,y第一个传入的是2,第二次传的是3将之前的2覆盖了。所以y是3,z传入的是4。但是在expr里面重新给z赋值了30,所以结果是30+1+3=34追问

哦 这个意思是 先对 exec() 内的进行赋值, 也就是先用字典的赋值, 然后用 sum外部的赋值 也就是z 对吧 , 是有个顺序的

追答

嗯,对的

本回答被提问者采纳
第2个回答  2018-09-14
math.exp(-x)应该用np.exp(-x);
The Zen of Python是Python语言的指导原则,遵循这些基本原则,Python代码有下列四大特征就成为一个准高手了:
1. 丰富的注释,包含参数说明,函数/类用途,甚至大段原理阐述与例子。
2. 充分用好装饰器/Python内嵌函数等高级功能。
3. 完善的异常处理,比如RuntimeError, ValueError。
4. 严格的PEP8规范代码。本回答被网友采纳