Python能否将一个变量转换成可解的方程?

2024-05-19 15:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

你能把一个变量变成一个方程来求解吗?在

一个简单的例子是

equ = "23/(n+2)"

for n in range(2):
    ans = equ
    print ans

这就回来了

^{pr2}$

而不是你想要的

^{3}$

Tags: inforrange例子方程printanspr2
2条回答

您可以使用SymPy进行此操作:

from sympy import sympify, Symbol

equ = "23/(n+2)"
equ_ = sympify(equ)
n_ = Symbol('n')

for n in range(2):
    print equ_.subs({n_: n}).evalf()

注意:eval is really dangerous。在

您可以使用^{}

equ = "23/(n+2)"

for n in range(2):
    ans = equ
    print eval(ans)

注意,这将在python2中给出错误的结果(分别是11和7)。在python3中,它将给出正确的结果。在Python 2中,可以通过确保至少一个相关数字不是整数来解决此问题:

^{pr2}$

相关问题 更多 >