我对为什么以下代码的答案是 10 而不是 1 感到困惑。有人可以帮助我了解发生了什么lambdify
或导致错误答案的原因吗?
import sympy
from sympy.utilities.lambdify import lambdify
from sympy import Function
from sympy.abc import x, y
def kFct(xIndex,loc,k1,k2):
... if xIndex <= loc:
... return k1
... else:
... return k2
...
loc = 0.5
k1 = 1
k2 = 10
kfun = lambdify( (x,y), kFct(x,loc,k1,k2) )
print kfun(0,0)
>>> 10
为什么不是答案k1
或 1,因为x = 0
小于loc = 0.5
?
但是,如果我这样做,它会返回正确的答案
print kfct(0,loc,k1,k2)
>>> 1
我需要将其kfun
作为 x 和 y 的函数,因为稍后,我将其用作积分参数的一部分。它最终也将取决于 y。
我在 Mac 10.6.x 上使用 python 2.6.8。