2017-12-05 32 views
-1

前に参照グローバル/ローカル定義されていないVAR(関数定義の一部)パイソン:このコードで割り当て

global aCVals 
    global aCKeys 
    i = 0 
    allCandidates = self.getCandidateDictionary(musicalSentence) 
    constrainedCandidates = {} 
    aCVals = list(allCandidates.values()) 
    aCKeys = list(allCandidates.keys()) 

    for i in range(len(acVals)): 
     if acVals[i] == possiblePitches[i]: 
      constrainedCandidates.append(possiblePitches[i]) 
    for i in range(len(aCVals)): 
     if aCKeys[i] in possiblePitches: 
      constrainedCandidates.append(aCKeys[i]) 
     elif aCKeys[i] == '$:::$': 
      constrainedCandidates.append(aCKeys[i]) 
    isDictionaryEmpty = bool(constrainedCandidates) 
    if isDictionaryEmpty == True: 
     q = self.weightedChoice(constrainedCandidates) 
     return q 
    else: 
     tup = (random.choice(possiblePitches).append(4), random.choice(NOTE_DURATIONS)) 
     return tup 

私はエラーを取得する:私はグローバルを添加

NameError: global name 'acVals' is not defined 

理由であります私がそれらをそこに置く前に私はこのエラーを得るでしょう:

local variable 'acVals' referenced before assignment 

助けてくださいので、私はここにあなたがaCValsaCKeysとして2つのグローバル変数を定義し

おかげ

+0

(範囲(len(acVals)):ここでは、cは大文字である必要があります。 –

+0

'acVals'は' aCVals'ではありません。 – user2357112

+0

acValsの '' aCVals'''への入力ミスのようです –

答えて

0

を欠けている概念の理解を得ることができます。そして、最初のforループはacValsではなく、aCValsです。 Pythonは大文字と小文字を区別するので、PythonはacVAls is not definedというエラーをスローします。