我想通過採取這些參數除了啓動:
lambda x: summation(lambda x: x, 1, lambda x: x + 1, x)
替代這些變量回到原來的功能,簡化IT:
def inner_function(x):
soma = 0
linf = 1
while linf <= x:
soma += linf + 1
linf += 1
return soma
簡化多了幾分:
def inner_function(x):
soma = 0
for linf in range(1, x + 1):
soma += linf
return soma
還有一點點:
inner_function = lambda x: sum(range(1, x + 1))
而且一些:
inner_function = lambda x: x * (x + 1)/2
現在你原來的功能就變成了:
def summation(calc_termo, linf, prox, lsup):
soma = 0
while linf <= lsup:
soma = soma + calc_termo(linf)
linf = prox(linf)
return soma
summation(inner_function, 1, lambda x: x + 1, 5)
或者:
def summation(linf, prox, lsup):
soma = 0
while linf <= lsup:
soma = soma + linf * (linf + 1)/2
linf = prox(linf)
return soma
summation(1, lambda x: x + 1, 5)
你可以把它從那裏。我:
summation = lambda: sum(n * (n + 1)/2 for n in range(6))
等於:
sum(sum(range(n + 1)) for n in range(6))
謝謝你的幫助,這真的很有幫助我現在可以更好地理解它 –