Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

math syntax checker written in python

Tags:

People also ask

How do you write a formula string parser in Python?

Find all operators at the current level, i.e. not in nested parentheses. Then, split the string into components using these operators. For each component, add the function name (e.g. sum( ) as prefix and close the parenthesis at the end ) Pass the whole string to the next recursion.


All I need is to check, using python, if a string is a valid math expression or not.

For simplicity let's say I just need + - * / operators (+ - as unary too) with numbers and nested parenthesis. I add also simple variable names for completeness.

So I can test this way:

test("-3 * (2 + 1)") #valid
test("-3 * ")        #NOT valid

test("v1 + v2")      #valid
test("v2 - 2v")      #NOT valid ("2v" not a valid variable name)

I tried pyparsing but just trying the example: "simple algebraic expression parser, that performs +,-,*,/ and ^ arithmetic operations" I get passed invalid code and also trying to fix it I always get wrong syntaxes being parsed without raising Exceptions

just try:

>>>test('9', 9)
9 qwerty = 9.0 ['9'] => ['9']
>>>test('9 qwerty', 9)
9 qwerty = 9.0 ['9'] => ['9']

both test pass... o_O

Any advice?