Строка в уравнение (для использования в функции mpmath.diff (...)) - PullRequest
0 голосов
/ 09 апреля 2019

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

Вот что я уже пробовал:

import mpmath

def deriv(equation):
    mpmath.diff(lambda x : equation,1)

deriv("3*x**2+4")

1 Ответ

0 голосов
/ 09 апреля 2019

Я знаю, что eval это зло, но по крайней мере вы можете начать с него:

import mpmath

def deriv(equation):
    print(mpmath.diff(lambda x : eval(equation), 1))

deriv("3*x**2+4")  # will print 6.0

Ладно, разобрался, как это сделать с sympy:

import mpmath
from sympy.parsing.sympy_parser import parse_expr

def deriv(equation):
    p = parse_expr(equation)
    print(mpmath.diff(lambda x : p.subs({'x': x}) ,1))

deriv("3*x**2+4")  # same 6.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...