2017-04-14 1 views
0

Donc, fondamentalement, j'essaie de créer un programme qui fera l'équation pour chaque valeur de nStart à nEnd. Ceci est mon code jusqu'à présentRésumé du programme d'équation

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

print summation(1 , 5 , n + 1) 

Je comprends que n n'est pas défini dans la dernière ligne. Je suppose que c'est parce que j'ai n + 1 mais comment puis-je résoudre ça? J'ai essayé de faire n = 0 mais cela n'aide pas car alors eqn est juste 1 et pas une équation.

Répondre

0

Vous pouvez utiliser une fonction lambda comme argument. Par exemple:

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) 

sera de retour:

55 
285 

Depuis

formula

formula2

espère que cela vous donne un outil utile pour explorer et modifier si elle n » Je fais exactement ce que tu veux.

+0

Je suis assez nouveau à ce sujet, donc je vais devoir comprendre comment fonctionne la gamme et lambda mais merci quand même !! – Joy