Форум сайта python.su
0
Всем доброго времени суток, в учебнике дошел до темы Рекурсивные функции и в подразделе темы приведен пример
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def mysum(L): print(L) if not L: return 0 else: return L[0] + mysum(L[1:]) mysum([1, 2, 3, 4, 5])
L = [1, 2, 3, 4, 5] sum = 0 while L: sum += L[0] L = L[1:] print(L)
Офлайн
568
А вы вообще узнавали у гугла, что такое рекурсия?
Офлайн
0
FishHook
Да, это функции которые вызывают сами себя.
Офлайн
568
Ок, вот в этой строке функция вызывает саму себя
return L[0] + mysum(L[1:])
Офлайн
0
FishHook
Все доперло, только не понятен маленький нюанс зачем нужен
return L[0]
def mysum(L): print(L) if not L: return 0 else: mysum(L[1:]) mysum([1, 2, 3])
Офлайн
568
Чего работает?
Вы же понимаете, что для того, чтобы получить сумму, где-то обязательно должна производиться операция сложения. Где же она у вас производится?
Офлайн