Python Equation Parser
I'm writing a program which needs a user input for an polynomial function of x. I'm using Tkinter and python 2.5. I have a parser method which so far takes the inputted equation a
Solution 1:
you can use regular expressions,
import re
test = '-x^2+3x+2x^3-x'
for m in re.finditer( r'(-{0,1}\d*)x\^{0,1}(-{0,1}\d*)', test ):
coef, expn = list( map( lambda x: x if x != '' and x != '-' else x + '1' ,
m.groups( ) ))
print ( 'coef:{}, exp:{}'.format( coef, expn ))
output:
coef:-1, exp:2
coef:3, exp:1
coef:2, exp:3
coef:-1, exp:1
Solution 2:
Look for "recursive descent parser". It's the canonical method for analysis of strings where some operator precedence is involved.
Solution 3:
It looks like you're implementing something that already exists, in python and other math languages. See for example:
http://www.gnu.org/software/octave/doc/interpreter/Solvers.html
http://stat.ethz.ch/R-manual/R-devel/library/base/html/solve.html
Post a Comment for "Python Equation Parser"