-1

你能把一个变量变成一个方程以便求解吗?

一个简单的例子是

equ = "23/(n+2)"

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

这返回

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

而不是想要的

11.5
7.667
4

2 回答 2

2

You could use SymPy for this:

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()
于 2014-08-21T14:19:04.187 回答
-2

注意:eval 真的很危险

你可以使用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)
于 2014-08-21T14:06:52.163 回答