Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Funktionsrekursion in Python | Abschnitt
Python-Funktionen

bookFunktionsrekursion in Python

Note
Definition

Rekursion ist eine Programmiertechnik, bei der eine Funktion sich selbst aufruft, um ein Problem in kleinere Teile zu zerlegen. Sie ist besonders nützlich für Probleme mit wiederholender Struktur oder natürlichen Teilproblemen.

Die Schlüsselelemente der Rekursion sind:

  • Abbruchbedingung: die Bedingung, die die Rekursion beendet;
  • Rekursiver Fall: der Teil, in dem die Funktion sich selbst mit einer einfacheren Eingabe aufruft.

Warum Rekursion verwenden?

Einige Probleme lassen sich auf natürliche Weise in kleinere Teilprobleme zerlegen. Rekursion bietet eine übersichtliche und elegante Möglichkeit, diese zu lösen, indem eine Funktion sich selbst aufruft, um die einfacheren Fälle zu bearbeiten. Sie wird häufig bei Aufgaben wie der Verarbeitung von Bäumen, der Pfaderkundung oder dem Zerlegen von Strukturen (z. B. Listen, Zeichenketten) eingesetzt.

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

Schrittweise Analyse zur Verdeutlichung der Funktionsweise dieses rekursiven Programms:

  1. Bedingungsprüfung: Wenn times > 0, wird die Funktion ausgeführt. In diesem Fall ist times = 3, daher ist die Bedingung erfüllt;
  2. Ausgabe der Nachricht: Die Funktion gibt "Hello, Recursion!" aus;
  3. Rekursiver Aufruf: Die Funktion ruft sich selbst mit times - 1 auf;
  4. Wiederholung: Dieser Vorgang wird fortgesetzt, bis times den Wert 0 erreicht;
  5. Beendigung: Sobald die Bedingung times > 0 nicht mehr erfüllt ist, endet die Rekursion und das Programm wird abgeschlossen.

Ergebnis: Die Nachricht "Hello, Recursion!" wird dreimal ausgegeben.

Ablaufverständnis:

Bei jedem rekursiven Funktionsaufruf wird ein neuer Frame zum Call Stack (einer Speicherstruktur zur Verwaltung aktiver Funktionsaufrufe) hinzugefügt. Die Funktion ruft sich mit einem jeweils kleineren Wert für times erneut auf. Sobald der Basisfall (times == 0) erreicht ist, stoppt die Ausführung. Anschließend werden alle vorherigen Aufrufe nacheinander in umgekehrter Reihenfolge abgeschlossen. Dieses Rückverfolgungsverhalten ist grundlegend für das Verständnis der Rekursion.

Aufgabe

Swipe to start coding

Gegeben ist ein String, der eine Telefonnummer darstellt und Leerzeichen, Bindestriche, Klammern oder andere nicht-numerische Zeichen enthalten kann. Ziel ist es, nur die Ziffern mithilfe von Rekursion zu extrahieren.

  • Wenn der Eingabestring number leer ist, eine leere Zeichenkette zurückgeben.
  • Überprüfen, ob das erste Zeichen des Strings number eine Ziffer ist, indem die Methode isdigit() in einer if-Bedingung verwendet wird.
  • Falls es sich um eine Ziffer handelt, diese mit dem Ergebnis eines rekursiven Aufrufs von format_phone_number verketten, wobei die Teilzeichenkette ab dem zweiten Zeichen übergeben wird.
  • Falls es keine Ziffer ist, einen rekursiven Aufruf von format_phone_number durchführen und das erste Zeichen überspringen.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 14
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

bookFunktionsrekursion in Python

Swipe um das Menü anzuzeigen

Note
Definition

Rekursion ist eine Programmiertechnik, bei der eine Funktion sich selbst aufruft, um ein Problem in kleinere Teile zu zerlegen. Sie ist besonders nützlich für Probleme mit wiederholender Struktur oder natürlichen Teilproblemen.

Die Schlüsselelemente der Rekursion sind:

  • Abbruchbedingung: die Bedingung, die die Rekursion beendet;
  • Rekursiver Fall: der Teil, in dem die Funktion sich selbst mit einer einfacheren Eingabe aufruft.

Warum Rekursion verwenden?

Einige Probleme lassen sich auf natürliche Weise in kleinere Teilprobleme zerlegen. Rekursion bietet eine übersichtliche und elegante Möglichkeit, diese zu lösen, indem eine Funktion sich selbst aufruft, um die einfacheren Fälle zu bearbeiten. Sie wird häufig bei Aufgaben wie der Verarbeitung von Bäumen, der Pfaderkundung oder dem Zerlegen von Strukturen (z. B. Listen, Zeichenketten) eingesetzt.

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

Schrittweise Analyse zur Verdeutlichung der Funktionsweise dieses rekursiven Programms:

  1. Bedingungsprüfung: Wenn times > 0, wird die Funktion ausgeführt. In diesem Fall ist times = 3, daher ist die Bedingung erfüllt;
  2. Ausgabe der Nachricht: Die Funktion gibt "Hello, Recursion!" aus;
  3. Rekursiver Aufruf: Die Funktion ruft sich selbst mit times - 1 auf;
  4. Wiederholung: Dieser Vorgang wird fortgesetzt, bis times den Wert 0 erreicht;
  5. Beendigung: Sobald die Bedingung times > 0 nicht mehr erfüllt ist, endet die Rekursion und das Programm wird abgeschlossen.

Ergebnis: Die Nachricht "Hello, Recursion!" wird dreimal ausgegeben.

Ablaufverständnis:

Bei jedem rekursiven Funktionsaufruf wird ein neuer Frame zum Call Stack (einer Speicherstruktur zur Verwaltung aktiver Funktionsaufrufe) hinzugefügt. Die Funktion ruft sich mit einem jeweils kleineren Wert für times erneut auf. Sobald der Basisfall (times == 0) erreicht ist, stoppt die Ausführung. Anschließend werden alle vorherigen Aufrufe nacheinander in umgekehrter Reihenfolge abgeschlossen. Dieses Rückverfolgungsverhalten ist grundlegend für das Verständnis der Rekursion.

Aufgabe

Swipe to start coding

Gegeben ist ein String, der eine Telefonnummer darstellt und Leerzeichen, Bindestriche, Klammern oder andere nicht-numerische Zeichen enthalten kann. Ziel ist es, nur die Ziffern mithilfe von Rekursion zu extrahieren.

  • Wenn der Eingabestring number leer ist, eine leere Zeichenkette zurückgeben.
  • Überprüfen, ob das erste Zeichen des Strings number eine Ziffer ist, indem die Methode isdigit() in einer if-Bedingung verwendet wird.
  • Falls es sich um eine Ziffer handelt, diese mit dem Ergebnis eines rekursiven Aufrufs von format_phone_number verketten, wobei die Teilzeichenkette ab dem zweiten Zeichen übergeben wird.
  • Falls es keine Ziffer ist, einen rekursiven Aufruf von format_phone_number durchführen und das erste Zeichen überspringen.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 14
single

single

some-alt