Python 名称错误:名称';freshdatapoly';未定义-以前定义的变量?

Python 名称错误:名称';freshdatapoly';未定义-以前定义的变量?,python,variables,numpy,tuples,Python,Variables,Numpy,Tuples,我正试图写一个代码来划分两个以二进制形式给出的多项式(分别是newdata和proofin)。但是,当我运行代码时,我得到: name错误:未定义名称“freshdatapoly” 这让我困惑,因为我认为我确实定义了,甚至在它后面附加了一些东西(似乎没有给出错误)。我怀疑“proofpoly”之后也会发生同样的事情。代码如下: import numpy as np def transformation_for_numpy_of_o(): newdata = ("101001")

我正试图写一个代码来划分两个以二进制形式给出的多项式(分别是newdata和proofin)。但是,当我运行代码时,我得到:

name错误:未定义名称“freshdatapoly”

这让我困惑,因为我认为我确实定义了,甚至在它后面附加了一些东西(似乎没有给出错误)。我怀疑“proofpoly”之后也会发生同样的事情。代码如下:

import numpy as np

def transformation_for_numpy_of_o():
    newdata = ("101001")
    freshdata = list(newdata)
    freshdatapoly = []

    for n in freshdata:

        if n == 1:
            freshdatapoly.append(1.0)

        if n == 0:
            freshdatapoly.append(0.0)



def transformation_for_numpy_of_proof():
    proofin = ("101001")
    proofing = list(proofin)
    proofpoly = []

    for n in proofing:

        if n == 1:
            proofpoly.append(1.0)

        if n == 0:
            proofpoly.append(0.0)



def total():

    # Based on http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.polydiv.html

    transformation_for_numpy_of_o()
    transformation_for_numpy_of_proof()
    numer = np.array(freshdatapoly)
    denomin = np.array(proofpoly)
    answer = np.polydiv(numer, denomin)
    print (answer)

total()

freshdatapoly
是函数的
转换中的局部变量。它只存在于该函数中

使用
Return
从函数中返回该值,然后在
total()
中将其分配给一个新的本地值:

total()
中:

您还需要为
proof()的
transformation\u中使用的
proofpoly
执行此操作;这是该函数中的一个局部变量,
total()
不能使用它,除非您返回它

def transformation_for_numpy_of_o():
    newdata = ("101001")
    freshdata = list(newdata)
    freshdatapoly = []

    for n in freshdata:

        if n == 1:
            freshdatapoly.append(1.0)

        if n == 0:
            freshdatapoly.append(0.0)

    return freshdatapoly
o_transformed = transformation_for_numpy_of_o()
# ...
numer = np.array(o_transformed)