TypeError:'float'对象不可调用

时间:2015-10-02 20:58:49

标签: python matplotlib

我得到一个“TypeError:'float'对象不可调用。

这是我的代码:

from matplotlib.pylab import *
def f(x,t):
    return (exp(-(x-3*t)**2) )*sin(3*pi(x-t))

 x = linspace(-4, 4, 8) 

 y = zeros(len(x)) 

for i in xrange(len(x)):
    y[i] = f(x[i],0)

plot(x, y)
show()

3 个答案:

答案 0 :(得分:1)

pi不是一个函数,但由于你没有使用*表示你想要与它相乘,看起来你正在使用它。

答案 1 :(得分:0)

float是Python中的数字类型。你无法调用它,因为它不是一个函数。我不熟悉mathplotlib.pylab包,但是快速查看一下你的代码,我猜错误就在这部分代码中

from matplotlib.pylab import *
def f(x,t):
    return (exp(-(x-3*t)**2) )*sin(3*pi(x-t)) #<---- pi is not a function, it can't be called

 x = linspace(-4, 4, 8) 

 y = zeros(len(x)) 

for i in xrange(len(x)):
    y[i] = f(x[i],0)

plot(x, y)
show()

如果您尚未定义名为pi的方法或mathplotlib.pylab中不包含名为pi的方法,那么这就是您的错误所在。如果py是等于3.1415的浮点变量,则调用pi(x-t)将与调用3.1415(x-t)相同。

您最有可能希望使用pi执行操作。如果是,则使用所需的操作。例如,`pi +(x-t)

答案 2 :(得分:0)

c=(1/((abs(r1-rmed)+1)(abs(r2-rmed)+1)))

当我在程序中键入此行时,出现错误:

  

float对象不可调用。

为消除错误,我在括号之间使用*。

c=(1/((abs(r1-rmed)+1)*(abs(r2-rmed)+1)))