我目前正在创建一个Python脚本,它将根据用户输入的公式进行一系列计算;但是,它没有按预期工作?
我尝试过以下方法:
init_printing(use_unicode=True)
x, y = symbols('x y', real = True)
userinput = sympify(input("testinput: "))
x_diff = diff(userinput, x)
print(x_diff)
但是,这总是返回零,但是当我直接写入输入时,例如
init_printing(use_unicode=True)
x, y = symbols('x y', real = True)
userinput = x**0.5+y
x_diff = diff(userinput, x)
print(x_diff)
它工作完美,我在这里做错了什么?
谢谢!
最佳答案
在 sympify
函数中添加 locals
参数会对您有所帮助。这是一个基于您的工作代码:
from sympy import *
init_printing(use_unicode=True)
x, y = symbols('x y', real = True)
userinput = input("testinput: ")
locals = {'x':x, 'y':y}
sympified = sympify(userinput, locals=locals)
print(f'derivate /x : = \n {diff(sympified, x)} \n derivative / y : \n {diff(sympified, y)}')
输出:
testinput: cos(y) + 2*x
derivate /x :
2
derivative /y :
-sin(y)
关于python - 使用 Sympy 实现用户输入的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74530358/