2017-04-30 3 views
-3
from random import uniform 

def e(x): 
    n=len(x) 
    return(sum(x)/n) 

    def dmean(e,x,new): 
    n=len(x) 
    return((e*n+new)/(n+1)) 

    l=[1,2,3,4,5,6,78] 
    e(l) 

    for i in range(0,5): 
    l.append(uniform(0,10)) 
    e=e(l) 
    d=dmean(e,l,uniform(0,10)) 

Antwort

3

Sie haben eine Funktion namens e. Das erste Mal durch die Schleife for Sie den Namen der Funktion überschreiben, indem eine Variable mit dem gleichen Namen e=e(l) erzeugen. Das nächste Mal durch die Schleife, versucht es, die Funktion zu nennen, aber e ist nun ein float Wert, der nicht genannt werden kann. Sie können dieses Problem beheben, indem Sie einen anderen Namen für die Variable Auswahl:

for i in range(0,5): 
    l.append(uniform(0,10)) 
    e_value=e(l) 
    d=dmean(e_value,l,uniform(0,10)) 

Wie Sie sehen können, Python unterscheidet nicht zwischen Variablennamen und Funktionsnamen, so müssen Sie sicher nicht zu den gleichen Namen machen verwenden für eine Variable und eine Funktion.

Verwandte Themen