2017-04-30 1 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)) 

답변

3

e이라는 함수가 있습니다. 처음으로 for 루프를 통과하면 e=e(l)이라는 변수를 만들어 함수 이름을 덮어 씁니다. 다음 번에는 루프를 통해 함수를 호출하려고 시도하지만 e은 호출 할 수없는 값인 float이되었습니다. 당신은 당신의 변수에 대해 다른 이름을 선택하여이 문제를 해결할 수 있습니다

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

당신이 볼 수 있듯이, 파이썬은 변수 이름과 함수 이름을 구분하지 않습니다, 그래서 당신은 같은 이름을 사용하지 않도록주의해야 변수와 함수.

관련 문제