sympy уже имеет такой встроенный синтаксический анализатор в sympy.parsing.sympy_parser.parse_expr
. Чтобы получить желаемые результаты с помощью оператора ввода, вы также должны добавить преобразование implicit_multiplication
(так как в противном случае sympy не будет генерировать выражения, которые имеют смысл для 2(
и 5x
):
from sympy.parsing.sympy_parser import (
parse_expr,
standard_transformations,
implicit_multiplication,
)
parse_expr("2(5x+4) + 3(2x-1)", transformations=standard_transformations + (implicit_multiplication,))