Средство проверки математического синтаксиса, написанное на python

Все, что мне нужно, это проверить с помощью python, является ли строка допустимым математическим выражением или нет.

Для простоты позвольте ' s говорят, что мне просто нужны операторы + - * / ( + - тоже как унарные) с числами и вложенными скобками. Я также добавляю простые имена переменных для полноты.

Итак, я могу проверить этот способ:

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

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

Я пробовал pyparsing , но просто пробовал пример: "простой синтаксический анализатор алгебраических выражений, который выполняет ] +, -, *, / и ^ арифметические операции " Мне передается недопустимый код, и я также пытаюсь его исправить. Я всегда получаю неправильный синтаксис, анализируемый без создания исключений

попробуйте :

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

оба теста пройдены ... o_O

Есть совет?

9
задан neurino 3 February 2011 в 05:09
поделиться