我试图创建一个python程序,它从用户那里获取一个函数(用x表示),并使用sympy返回其派生函数。但是,当我输入x以外的字母时,sympy会抛出一个未定义符号的错误。我希望它将x以外的字母视为常数。例如,如果用户输入 a*x**2 + bx ,他们应该 2*a*x + b ,如果他们进入 z*x**2 + px ,他们应该 2*z*x + p . 如何将除“x”之外的字母视为常量,而不必将每个字母硬编码为符号?我希望我的问题是清楚的。如有需要,请随时要求澄清。
a*x**2 + bx
2*a*x + b
z*x**2 + px
2*z*x + p
but5z9lq1#
您应该首先解析用户输入并收集所有符号。要将字符串解析为sympy表达式,请使用 sympy.sympify . 我想你只想得到导数w.r.t x。完整代码为:
sympy.sympify
import sympy as sp expr = sp.sympify(input('enter expression: ')) print('Derivative w.r.t x: ', sp.diff(expr, 'x'))
1条答案
按热度按时间but5z9lq1#
您应该首先解析用户输入并收集所有符号。要将字符串解析为sympy表达式,请使用
sympy.sympify
. 我想你只想得到导数w.r.t x。完整代码为: