使用逗号分隔的输入作为参数
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(','))
拆分输入,不再将其视为字符串。
我有以下用于与 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(','))
拆分输入,不再将其视为字符串。