calculating a string equation
Arnaud Delobelle
arnodel at googlemail.com
Thu Feb 11 22:50:00 CET 2010
Astan Chee <astan.chee at al.com.au> writes:
> Hi,
> I have some variables in my script that looks like this:
> vars = {'var_a':'10','var_b':'4'}
> eqat = "(var_a/2.0) <= var_b"
> result = "(var_a+var_b)/7"
> What I'm trying to do is to plug in var_a and var_b's values from vars
> into eqat and see if eqat returns true or false as well as getting the
> value of result if these variables were "plugged in". How do I do
> this?
> I'm also expecting eqat and result to contain various python
> mathematical operators like **, and compounded ()'s.
> I'm not sure how to convert the equation; if I have to make a bunch of
> if-statements or if there is a python function that already does
> something like this.
Yes: eval()
>>> vars = {'var_a':10 ,'var_b':4}
>>> eqat = "(var_a/2.0) <= var_b"
>>> result = "(var_a+var_b)/7"
>>> eval(eqat, vars)
False
>>> eval(result, vars)
2
(Note that I have slightly modified your vars dictionary)
See a recent thread about the dangers of eval().
--
Arnaud
More information about the Python-list
mailing list