python:你能把变量变成可解的方程吗?

时间:2014-08-21 14:03:49

标签: python variables equations

你能把一个变量变成一个等式,以便它可以解决吗?

一个简单的例子就像是

equ = "23/(n+2)"

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

返回

23/(n+2)
23/(n+2)

而不是理想的

11.5
7.667

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:-2)

注意: eval is really dangerous

您可以使用eval()

equ = "23/(n+2)"

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

请注意,这将在Python 2中分别给出错误的结果(分别为11和7)。在Python 3中,它会给出正确的结果。您可以通过确保至少一个涉及的数字不是整数来修复Python 2中的问题:

equ = "23.0/(n+2)"

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