2016-04-03 14 views
1

私はバイナリ形式(それぞれnewdataとproofin)で与えられた2つの多項式を分割するコードを書こうとしています。私は、コードを実行すると、しかし、私が手:私は(エラーを与えないように思われる)を定義し、さらにはそれに物事を付加したのだと思うようNameError:名前 'freshdatapoly'が定義されていません - 以前に定義された変数ですか?

NameError: name 'freshdatapoly' is not defined

これは、私を混乱させる。私は後で同じことが起こるかもしれないと思う '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() 

答えて

1

freshdatapolytransformation_for_numpy_of_o()機能でローカル変数である:ここではコードです。その関数内にのみ存在します。

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 

total()で:

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

あなたはproofpolyのためにこれを行う必要がありますreturnを使用して、関数から値、そしてtotal()に新しいローカルに割り当てていること

戻りますtransformation_for_numpy_of_proof()でも使用されています。これはのローカル変数で、関数であり、返さない限りtotal()には使用できません。

関連する問題