我在一个文件中有一些数学函数(表示为字符串):
1+a**(b/(3*a+1))
(1+a)**(b/(3*a+1))
...
如何将**
字符串中的所有 s转换为 s math.pow
?
编辑:我要解决的是以下问题:我有很多这样的功能要评估,我不能花太多时间在一个上。
有时函数看起来像这样:
(3**100**100**2)
Python 尝试评估它,这很长。我想有一个错误,而不是:
>>> math.pow(3, math.pow(100, 100))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: math range error
编辑2:谢谢大家的回答,我终于找到了怎么做,你的回答和评论对我帮助很大。我只需要在文件顶部用下一行强制浮点除法:
from __future__ import division