Python中动态计算数学表达式

动态的意思是这样的需求:

假设,Python本地变量中已经存在了两个变量(不一定时代码中写死的,也可以是程序自动生成的)。

a = 3
b = 4

现在,有一个写了数学表达式的字符串:

'a + b'

则,期望其能输出7。

这个需求要2步完成:

1、生成本地变量a、b。

在实际需求中,变量的值往往也是动态生成,而非写死在代码中。

可以用locals,或者exec完成:

locals()['a'] = 3
exec('a=3')

2、动态计算

使用eval计算结果:

>>> eval('a+b')
7

 

Leave a Reply

Your email address will not be published. Required fields are marked *