使用逗号分隔的输入作为参数

Use comma separated input as arguments

我有以下用于与 sympy 集成和区分的代码:

from sympy import *
x = symbols('x')
mode = input("Differentiate (1) or Integrate (2)?\t")
function = input("Function:\t")
parameter = input("With respect to:\t")

if mode == str(1):
    deriv = diff(function, parameter)
    print(deriv)
if mode == str(2):
    intg = integrate(function, parameter)
    print(intg)

我想在区分函数中使用来自parameter的输入,可以这样使用:

diff(exp(x*y*z), x, y, z)

这会给你 (x**2*y**2*z**2 + 3*x*y*z + 1)*exp(x*y*z)。 只要我输入 x, 2 之类的代码,代码就可以正常工作,这将是函数关于 x 的二阶导数。例如,如果用户输入是 x, y, z,它不会像上面显示的那样工作,而是给出这个错误:

  File "/home/username/.local/lib/python3.8/site-packages/sympy/core/function.py", line 1337, in __new__
    v, count = v

ValueError: too many values to unpack (expected 2)

如果输入是逗号分隔值作为参数,有什么方法可以使用它吗?我尝试拆分它,但它是一个列表,每个字母都是一个字符串,这当然不能作为参数。

Ron Serruya 的回答有效。

deriv = diff(function, *parameter.split(','))
intg = integrate(function, *parameter.split(','))

拆分输入,不再将其视为字符串。