关于#python splrep()函数#的问题,如何解决?

python使用splrep()函数报错

def data_std(vector_raw):  # 输入list类型
    # 初始数据处理,把vector_raw
    x_raw = np.linspace(1, 1000, len(vector_raw))
    x_new = np.linspace(1, 1000, 1000)  # 1-10000中定义均匀的1000个点

    print(x_raw)
    tck = interpolate.splrep(x_raw, vector_raw)  # 点对应vector_raw
    vector_new = interpolate.splev(x_new, tck)  # 插入1000个节点

    return vector_new

报错内容

Traceback (most recent call last):
  File "D:/task2022(1)/task/task1.py", line 149, in 
    tmp = data_std(list(np.loadtxt(f)))
  File "D:/task2022(1)/task/task1.py", line 29, in data_std
    tck = interpolate.splrep(x_raw, vector_raw)  # 点对应vector_raw
  File "D:\task2022(1)\task\venv\lib\site-packages\scipy\interpolate\fitpack.py", line 291, in splrep
    res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)
  File "D:\task2022(1)\task\venv\lib\site-packages\scipy\interpolate\_fitpack_impl.py", line 440, in splrep
    if task <= 0:
UnboundLocalError: local variable 'task' referenced before assignment

第291行内容 res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)
第440行内容if task <= 0:
两个内容在不同文件

local variable 'task' referenced before assignment 在定义函数时,使用了与全局变量同名的局部变量,出现此错误
因为函数内部定义了一个与外部变量同名的变量,此时函数会把这个变量定义为局部变量,如果没有赋值则不能调用它
把‘task’换成别的变量名就解决了

报错的内容就是说你task变量没有定义赋值,你就在if task <= 0这里使用它。
你的task是啥?你是忘记赋值了?还是名字拼写错了?