插值不能相乘,显示Nonetype

Interpolation value can't be multiplied, show Nonetype

我写了一个插值函数。但是当我调用该函数时,它运行良好。但是当获得的值相乘时,它显示 TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

从 scipy.interpolate 导入 interp1d

def repair(hour):
    x = [300,600,900,1200,1500,1800,2100,2400,2700,3000,3300,3600,3900,4200,4500,4800,5100,5400,5700,6000]
    y = [0,1,2,4,6,9,12,16,20,25,30,36,42,49,56,64,72,81,90,100]

    x_interip = interp1d(x,y)
    r = x_interip(hour)
    print(r)

p = repair(400)
c = p*100
print(c)

这是我的代码,不知道哪里错了。我是基础学习者。

错误的出现是因为你的函数没有return任何东西。将 return r 添加到函数的末尾。否则,p 的值将是 None,并且错误来自将 p(即 None,因此类型为 NoneType)乘以 100( int类型)。