Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Functie-Recursie in Python | Sectie
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
Pythonfuncties

bookFunctie-Recursie in Python

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 eenvoudiger 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 (bijvoorbeeld 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

Volg stap voor stap om te begrijpen 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 langer waar is, stopt de recursie en is het programma voltooid.

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

Het verloop begrijpen:

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 voltooid 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.

  • Als de invoerstring number leeg is, geef dan een lege string terug.
  • Controleer of het eerste teken van de string number een cijfer is met de methode isdigit() in een if-voorwaarde.
  • 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.
  • Als het geen cijfer is, doe dan een recursieve aanroep van format_phone_number, waarbij het eerste teken wordt overgeslagen.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 14
single

single

Vraag AI

expand

Vraag AI

ChatGPT

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

close

bookFunctie-Recursie in Python

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 eenvoudiger 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 (bijvoorbeeld 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

Volg stap voor stap om te begrijpen 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 langer waar is, stopt de recursie en is het programma voltooid.

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

Het verloop begrijpen:

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 voltooid 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.

  • Als de invoerstring number leeg is, geef dan een lege string terug.
  • Controleer of het eerste teken van de string number een cijfer is met de methode isdigit() in een if-voorwaarde.
  • 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.
  • Als het geen cijfer is, doe dan een recursieve aanroep van 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 1. Hoofdstuk 14
single

single

some-alt