calculating a string equation
Astan Chee
astan.chee at al.com.au
Sat Feb 20 18:07:32 EST 2010
Arnaud Delobelle wrote:
> 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
Hi,
I now have a slight problem with this. This doesnt seem to work:
>>> vars = {'var a':10 ,'var b':4}
>>> eqat = "(var a/2.0) <= var b"
>>> eval(eqat, vars)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
eval(eqat, vars)
File "<string>", line 1
(var a/2.0) <= var b
^
SyntaxError: invalid syntax
So eval can't take spaces? is there a way to go around this?
Thanks again for any suggestions
Cheers
Astan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100221/63409e6c/attachment-0001.html>
More information about the Python-list
mailing list