2017-04-14 5 views
0

기본적으로 나는 nStart에서 nEnd의 모든 값에 대해 방정식을 수행하는 프로그램을 만들려고합니다. 이것은 내 코드입니다.방정식 프로그램의 요약

def summation(nStart , nEnd , eqn): 
    sum = 0 
    while nStart - 1 != nEnd: 
     sum = sum + eqn 
     nStart += 1 
    return sum 

print summation(1 , 5 , n + 1) 

나는 마지막 줄에 n이 정의되어 있지 않습니다. 내가 n + 1을 가지고 있기 때문에 그것이라고 생각하지만 어떻게 해결할 수 있습니까? 나는 n = 0으로 만들려고했으나 그때는 eqn이 방정식이 아니라 단지 1이기 때문에 도움이되지 않습니다.

답변

0

람다 함수을 인수로 사용할 수 있습니다. 예를 들어 :

def summation(start, end, eqn): 
    sum = 0 
    # Note that the *end* value will not be used, since range stops at *end-1* 
    for i in range(start, end): 
     sum+=eqn(i) 
    return sum 

print summation(0,10,lambda x: x+1) 
print summation(0,10,lambda x: x**2) 

반환됩니다

55 
285 

희망

formula

formula2

때문에이 당신에게 탐구하고 '아무튼 경우 수정할 수있는 유용한 도구를 제공합니다 당신이 한 일을 정확하게 수행하지 마십시오.

+0

나는 이것에 꽤 새로울 것이므로 범위와 람다가 어떻게 작동하는지 알아 내야 만 하겠지만 그래도 역시 감사해야한다 !! – Joy