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

bookRecursie

Note
Definitie

Recursie is een programmeertechniek waarbij een functie zichzelf aanroept om een probleem in kleinere delen op te lossen. Het is vooral nuttig voor problemen met een herhalende structuur of natuurlijke deelproblemen.

De belangrijkste elementen van recursie zijn:

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

Waarom recursie gebruiken?

Sommige problemen kunnen op natuurlijke wijze 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).

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

Laten we stap voor stap bekijken hoe dit recursieve programma werkt:

  1. Voorwaarde controleren: als times > 0, gaat de functie verder. In dit geval is times = 3, dus de voorwaarde is waar;
  2. Bericht afdrukken: de functie drukt "Hello, Recursion!" af;
  3. Recursieve aanroep: de functie roept zichzelf aan met times - 1;
  4. Herhaling: dit proces gaat door totdat times gelijk is aan 0;
  5. Beëindiging: wanneer de voorwaarde times > 0 niet meer waar is, stopt de recursie en is het programma voltooid.

Resultaat: Het bericht "Hello, Recursion!" wordt drie keer afgedrukt.

Begrijpen van de werking:

Elke keer dat de functie zichzelf aanroept, wordt er een nieuw frame toegevoegd aan de call stack (een geheugenstructuur die actieve functieaanroepen bijhoudt). De functie blijft zichzelf aanroepen met een kleinere waarde voor times. Zodra het basisgeval (times == 0) is bereikt, stopt het. Vervolgens wordt elke vorige aanroep één voor één afgerond in omgekeerde volgorde. Dit terugspoelgedrag is essentieel voor hoe recursie werkt.

Taak

Swipe to start coding

Gegeven een string die een telefoonnummer voorstelt, welke spaties, streepjes, haakjes of andere niet-numerieke tekens kan bevatten. Het doel is om alleen de cijfers te extraheren met behulp van recursie.

  1. Als de invoerstring number leeg is, geef een lege string terug.
  2. Controleer of het eerste teken van de string number een cijfer is met de methode isdigit() in een if-voorwaarde.
  3. Als het een cijfer is, concateneer dit met het resultaat van een recursieve aanroep van format_phone_number, waarbij de substring vanaf het tweede teken wordt doorgegeven.
  4. Als het geen cijfer is, doe een recursieve aanroep naar format_phone_number, waarbij het eerste teken wordt overgeslagen.

Oplossing

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.

Suggested prompts:

Can you explain what happens if there is no base case in a recursive function?

What are some common mistakes to avoid when using recursion?

Can you show another example of recursion in Python?

close

Awesome!

Completion rate improved to 4.35

bookRecursie

Veeg om het menu te tonen

Note
Definitie

Recursie is een programmeertechniek waarbij een functie zichzelf aanroept om een probleem in kleinere delen op te lossen. Het is vooral nuttig voor problemen met een herhalende structuur of natuurlijke deelproblemen.

De belangrijkste elementen van recursie zijn:

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

Waarom recursie gebruiken?

Sommige problemen kunnen op natuurlijke wijze 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).

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

Laten we stap voor stap bekijken hoe dit recursieve programma werkt:

  1. Voorwaarde controleren: als times > 0, gaat de functie verder. In dit geval is times = 3, dus de voorwaarde is waar;
  2. Bericht afdrukken: de functie drukt "Hello, Recursion!" af;
  3. Recursieve aanroep: de functie roept zichzelf aan met times - 1;
  4. Herhaling: dit proces gaat door totdat times gelijk is aan 0;
  5. Beëindiging: wanneer de voorwaarde times > 0 niet meer waar is, stopt de recursie en is het programma voltooid.

Resultaat: Het bericht "Hello, Recursion!" wordt drie keer afgedrukt.

Begrijpen van de werking:

Elke keer dat de functie zichzelf aanroept, wordt er een nieuw frame toegevoegd aan de call stack (een geheugenstructuur die actieve functieaanroepen bijhoudt). De functie blijft zichzelf aanroepen met een kleinere waarde voor times. Zodra het basisgeval (times == 0) is bereikt, stopt het. Vervolgens wordt elke vorige aanroep één voor één afgerond in omgekeerde volgorde. Dit terugspoelgedrag is essentieel voor hoe recursie werkt.

Taak

Swipe to start coding

Gegeven een string die een telefoonnummer voorstelt, welke spaties, streepjes, haakjes of andere niet-numerieke tekens kan bevatten. Het doel is om alleen de cijfers te extraheren met behulp van recursie.

  1. Als de invoerstring number leeg is, geef een lege string terug.
  2. Controleer of het eerste teken van de string number een cijfer is met de methode isdigit() in een if-voorwaarde.
  3. Als het een cijfer is, concateneer dit met het resultaat van een recursieve aanroep van format_phone_number, waarbij de substring vanaf het tweede teken wordt doorgegeven.
  4. Als het geen cijfer is, doe een recursieve aanroep naar format_phone_number, waarbij het eerste teken wordt overgeslagen.

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

some-alt