Суммарная программа уравнения

Итак, в основном я пытаюсь создать программу, которая будет делать уравнение для каждого значения от 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, а не уравнение.


person Joy    schedule 14.04.2017    source источник


Ответы (1)


В качестве аргумента можно использовать лямбда-функцию. Например:

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

С

формула

formula2

Надеюсь, это даст вам полезный инструмент для изучения и модификации, если он не делает именно то, что вам нужно.

person Robbie    schedule 14.04.2017
comment
Я новичок в этом, поэтому мне нужно выяснить, как работает диапазон и лямбда, но, тем не менее, спасибо !! - person Joy; 15.04.2017