Python 名称错误:名称';freshdatapoly';未定义-以前定义的变量?
我正试图写一个代码来划分两个以二进制形式给出的多项式(分别是newdata和proofin)。但是,当我运行代码时,我得到: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")
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)