Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Recursie | Recursie en Lambda-Functies
Python Functies Tutorial
Sectie 5. Hoofdstuk 1
single

single

Recursie

Veeg om het menu te tonen

Note
Definitie

Een recursieve functie is een functie die zichzelf aanroept om een probleem op te lossen door het op te splitsen in kleinere, eenvoudigere delen.

De belangrijkste elementen van recursie zijn:

  • Basisgeval: de voorwaarde die de recursie stopt;
  • Recursief geval: het deel waar de functie zichzelf aanroept met een eenvoudiger invoer.

Waarom recursie gebruiken?

Sommige problemen kunnen op een natuurlijke manier worden uitgedrukt in termen van kleinere deelproblemen. Recursie biedt een overzichtelijke en elegante manier om deze op te lossen door een functie zichzelf te laten aanroepen voor de eenvoudigere gevallen. Het wordt vaak gebruikt bij taken zoals het verwerken van bomen, het verkennen van paden of het opdelen van structuren (zoals lijsten, strings).

Een eenvoudig voorbeeld

123456
def print_message(message, times): if times > 0: # Base case: stop when times is 0 print(message) print_message(message, times - 1) # Recursive case print_message("Hello, Recursion!", 3)

Stap voor stap uitleggen hoe dit werkt:

  1. times = 3 → voorwaarde is waar, bericht wordt afgedrukt, aanroep print_message(message, 2);
  2. times = 2 → voorwaarde is waar, bericht wordt afgedrukt, aanroep print_message(message, 1);
  3. times = 1 → voorwaarde is waar, bericht wordt afgedrukt, aanroep print_message(message, 0);
  4. times = 0 → voorwaarde is onwaar, recursie stopt.

Resultaat: het bericht wordt drie keer afgedrukt.

De aanroepstack

Elke keer dat de functie zichzelf aanroept, wordt er een nieuw frame toegevoegd aan de aanroepstack — een geheugenstructuur die actieve functieaanroepen bijhoudt. Zodra het basisgeval is bereikt, wordt elke vorige aanroep één voor één in omgekeerde volgorde afgerond.

Note
Opmerking

Elke recursieve functie moet een basisgeval hebben. Zonder dit blijft de functie zichzelf oneindig aanroepen en veroorzaakt een RecursionError.

Taak

Veeg om te beginnen met coderen

Implementeer een recursieve functie list_sum die de som berekent van alle elementen in een lijst.

  1. Als de lijst numbers leeg is, retourneer 0 — dit is het basisgeval;
  2. Anders retourneer het eerste element opgeteld bij het resultaat van een recursieve aanroep met de rest van de lijst.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 1
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt