你能把一个变量变成一个等式,以便它可以解决吗?
一个简单的例子就像是
equ = "23/(n+2)"
for n in range(2):
ans = equ
print ans
返回
23/(n+2)
23/(n+2)
而不是理想的
11.5
7.667
答案 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)