2016-06-14 3 views
-3

Dies funktioniert.Globale Variable in Python-Funktion funktioniert nicht für meinen Code

a = [2,5,3,7,9,12] 
def mean_list(x): 
     b = 0 
     for i in x: 
      b=b+i 
      c = b/len(x) 
     return c 
print(mean_list(a)) 

aber das funktioniert nicht, obwohl ich meine Liste als global deklariert habe. Warum?

def mean_list(x): 
     global a 
     a = [2,5,3,7,9,12] 
     b = 0 
     for i in x: 
      b=b+i 
      c = b/len(x) 
     return c 
print(mean_list(a)) 
+0

Definieren * "funktioniert nicht" *. Warum verwenden Sie den globalen Status überhaupt? Und warum gibst du dasselbe als Parameter weiter? – jonrsharpe

+0

Was meinst du mit "funktioniert nicht"? Gibt es einen Fehler? Wenn ja, fügen Sie die vollständige Rückverfolgung mit dem Fehler hinzu. Bevor Sie die Funktion aufrufen, gibt es kein 'a', so dass Sie' a' nicht in die Funktion eingeben können (weil es nicht existiert). – syntonym

+0

Im zweiten Beispiel definieren Sie die Funktion, die 'a' definiert. Dann versuchen Sie, die Funktion aufzurufen, indem Sie 'a' als Parameter übergeben. Das Problem ist, dass 'a' noch nicht definiert wurde, weil die Funktion nicht aufgerufen wurde! –

Antwort

1

Ihre Liste (a) wird nur erstellt, wenn Sie die Funktion aufrufen. Es wird also nicht erstellt, wenn Sie die Funktion nicht einmal aufrufen, versuchen, die Funktion mit einer anderen Variablen aufzurufen, und dann a