Как оценить строку математического выражения, которую пользователь передал программе на python? - PullRequest
0 голосов
/ 22 сентября 2019

Я хотел написать программу, в которой пользователь может передать математическое выражение, которое он хочет оценить как строку.

Так, например, если пользователь вводит формулу и другие необходимые аргументы в виде строки

sin(x**2)/x, 0, pi/2

и я хочу обработать это как интеграл с помощью math из sympy, как мне это сделать?Я знаю, как пакет sympy может обрабатывать математические выражения, но я не знаю, как это сделать, когда выражение является строкой.

Спасибо за помощь!

1 Ответ

1 голос
/ 22 сентября 2019

Возможно, вам нужна функция sympify .

Вы также можете использовать функцию split(), чтобы разделить строку, которую пользователь вводит в массив, чтобы получить другие необходимые аргументы.Вы упоминаете о необходимости.

Например:

from sympy import sympify
def evaluate(x, args[]):
    # do stuff
    return answer
in = input("Enter your expression: ")
x = in.split(",")
print(evaluate(x[0], [x[1], x[2], ...]))

РЕДАКТИРОВАТЬ: Только что понял, что я забыл описать, как использовать sympify, что, вероятно, самая важная вещь в этом вопросе.Вот простой пример того, как его использовать:

x = sympify("x**2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...