2010-07-17 54 views
5

对于预定义方程式,将新值分配给变量不会改变方程式的值。 我如何分配新值的变量,这样我会得到方程的适当的值,而不是以前的一个如何将新值赋给预定义方程中的变量?

a,b,c,d,e,f=sympy.symbols('abcdef') 
a,b=c,d 

e=a+b #equation 
print e 
c+d #value of eqn 
a,b=d,f 
print e 
c+d #not d+f 
+1

您的问题的讨论: //docs.sympy.org/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions – 2010-07-17 18:38:04

+0

@PreludeAndFugue:链接现在已被打破。也许你有任何新的参考? – Bach 2014-09-26 14:27:10

+0

更新后的链接:http://docs.sympy.org/latest/gotchas.html#variables-assignment-does-not-create-a-relation-between-expressions – 2014-09-28 12:37:21

回答

5

也许使用substitution,而不是平等的:HTTP:

import sympy 
a,b,c,d,e,f=sympy.symbols('abcdef') 
e=a+b #equation 
print e.subs([(a,c),(b,d)]) 
# c + d 
print e.subs([(a,d),(b,f)]) 
# d + f 
+0

得到这个 TypeError:'instancemethod'对象不是可下载的 – user394706 2010-07-17 16:30:32

+2

上面的代码在我的最后工作正常:sympy 0.6.5,python 2.5 – ars 2010-07-17 18:26:41

+0

thanx!由于我的语法错误,它没有工作 – user394706 2010-07-18 02:26:30