Rekursion in Python

Wie man Python-Rekursion verwendet

Python-Rekursion ist ein einschuchterndes Thema fur Anfänger. Lassen Sie uns den Mythos zerstreuen, dass Rekursion schwierig ist, indem wir sie definieren. Rekursion ist eine Programmiermethode, bei der sich eine Funktion selbst aufruft.

Das klingt einfach, oder? Wenn Sie den Dreh raus haben, ist Rekursion kein schwieriges Konzept.

In diesem Python-Tutorial werden wir uber Rekursion und ihre Funktionsweise sprechen. Wir werden ein Beispiel fur Rekursion mit faktoriellen Funktionen durchgehen, um Ihnen den Einstieg in diese Programmiermethode zu erleichtern.

Was ist Rekursion?

Rekursion definiert etwas in Bezug auf selbst.

Eine rekursive Funktion löst Probleme, indem sie sich selbst erneut aufruft. Dieses Verhalten wird in den meisten gängigen Programmiersprachen wie Python unterstutzt. Sie sind ein wesentlicher Bestandteil der Informatik und Datenwissenschaft.

Rekursion ist nutzlich, wenn die L√∂sung eines Problems durch Zerlegen in kleinere Probleme gefunden werden kann, die alle dieselbe Formel verwenden. Diese Arten von Problemen werden oft als &bgr;rekursive Algorithmen bezeichnet.‚" Der Schlussel zu ihrer L√∂sung liegt im Namen!

Iterativ vs. rekursiv

Es gibt zwei Möglichkeiten, einen Algorithmus zu lösen: iterativ oder rekursiv.

Iterative Lösungen fur Algorithmen gelten als „mächtig, aber hässlich" Sie erledigen die Arbeit, aber sie tun es nicht gerade auf die eleganteste Art und Weise. Um rekursive Algorithmen richtig zu verstehen, mussen wir uns iterative Funktionen ansehen.

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Eine iterative function ist eine Funktion, die ein Problem mithilfe einer Schleife löst. Es fuhrt den Code in einer Schleife aus, bis diese Schleife abgeschlossen ist. Eine rekursive Funktion ist eine Funktion, die ein Problem in kleinere Teile zerlegt und jeden Teil löst, indem sie sich selbst aufruft.

Faktoren: Das iterative Beispiel

Faktoren sind eine gute Möglichkeit, Rekursion zu demonstrieren und iteratives Denken. In der Mathematik sind Fakultäten die Summe einer Zahl und jeder Zahl, bevor sie miteinander multipliziert wird.

Die Fakultät von 5 ist gleich 5 * 4 * 3 * 2 * 1. Die Fakultät von 2 ist gleich 2 * 1.

Berechnen von a Factorial können wir eine iterative Funktion schreiben:

Diese Funktion verwendet eine for-Schleife um alle Zahlen im Bereich von 1 und die von uns angegebene Zahl plus 1 zu durchlaufen. Fur jede Iteration wird die Zahl, uber die die Schleife iteriert, mit der . multipliziert Rufen wir unsere Funktion auf, um die Fakultät zu finden:

Unser Code gibt zuruck: 24. Um zu dieser Lösung zu gelangen, läuft unser Code:

  • 1 * 1 = 1
  • 2 * 2 = 4
  • 4 * 3 = 8
  • 8 * 4 = 24

Wie Sie sehen, multipliziert unser Code 4 mit allen niedrigeren Zahlen und dann sich selbst.

Dieser Code ist funktionsfähig. Der einzige Nachteil ist, dass es nicht so elegant ist, wie es sein könnte. Hier sind rekursive Funktionen praktisch.

Faktoren: Das Rekursionsbeispiel

Schreiben wir eine rekursive Funktion, die eine Fakultät berechnet. Öffnen Sie eine neue Python-Datei und fugen Sie den folgenden Code ein:

Dieser Code verwendet den rekursiven Ansatz. Wenn diese Funktion ausgefuhrt wird, wird ein ‚"if‚" Anweisung wird ausgefuhrt. Diese Anweisung pruft, ob die an die Funktion ubergebene Zahl gleich 1 ist. Wenn ja, gibt unsere Funktion 1 zuruck. Andernfalls wird die Fakult√§t unserer Zahl berechnet.

Diese Berechnung funktioniert durch Multiplikation der Zahl, die von der Fakult√§t der vorherigen Zahl an die Funktion ubergeben wird. Diese Funktion wird immer wieder aufgerufen, bis "Zahl‚" gleich 1 ist. Bei jedem Aufruf der Funktion wird der Wert von "Zahl‚" wird um 1 reduziert.

Versuchen wir unseren Code mit der Zahl 4:

Die Antwort 24 wird zuruckgegeben. Unsere Antwort ist richtig; sie entspricht unserem letzten Beispiel. Wir haben die Lösung gefunden fur dieses Problem rekursiv statt iterativ.

Brauchen Sie noch ein wenig Hilfe? Lassen Sie uns ein weiteres Beispiel fur Rekursion durchgehen.

Rekursion mit der Fibonacci-Folge

Die Fibonacci-Folge ist eine mathematische Folge, bei der jede Zahl die Summe der beiden vorherigen Zahlen ist.Diese Folge beginnt mit: 0, 1, 1, 2, 3, 5, 8, 13 und so weiter.

Diese Sequenz fugt zwei Zahlen hinzu, um die nächste Zahl zu finden. Dies macht sie ideal fur die Rekursion.

Öffnen Sie eine Python-Datei und fugen Sie diesen Code ein:< br>

Dieser Code berechnet die Summe von zwei vorhergehenden Zahlen in einer Liste, solange "Zahl‚" gr√∂√üer als 1 ist. Andernfalls wird "Zahl zuruckgegeben‚". Nun, nennen wir unsere Funktion:

"Karma-Karma trat in mein Leben ein, als ich es am dringendsten brauchte und half mir schnell bei einem Bootcamp. Zwei Monate nach meinem Abschluss fand ich meinen Traumjob, den im Einklang mit meinen Werten und Zielen im Leben!"

Venus, Software Engineer bei Rockbot

Die Ausfuhrungsvariable verfolgt, wie viele Zahlen in der Fibonacci-Folge, die wir berechnen wollen. Wir verwenden dies, um eine for-Schleife zu erstellen, die unsere Funktion fibonacci() fur jede Zahl im Bereich von 1 und den Wert von "Ausfuhrungen‚" aufruft.

Bevor unsere for-Schleife beginnt, geben wir "Fibonacci-Folge:‚" zur Konsole. In diesem Beispiel ist unser "fur‚" Schleife fuhrt aus:

Lassen Sie unseren Code gemeinsam ausfuhren und sehen, was passiert:

Unser Code berechnet die ersten funf Zahlen in der Fibonacci-Folge. Wir k√∂nnten mehr Zahlen berechnen, indem wir den Wert von "Ausfuhrungen‚" erh√∂hen.

Rekursionstiefe und Basisbedingungen

Eine rekursive Funktion muss eine Basisbedingung haben. Dies ist eine Bedingung, die die Rekursion stoppt, wenn ein bestimmter Basisfall erfullt ist. Ohne Basisfunktion wird eine Endlosschleife erstellt.

Eine rekursive Funktion kann sich standardmäßig nicht mehr als 1.000 Mal ausfuhren. Sobald diese Grenze erreicht ist, wird eine Fehlermeldung wie diese angezeigt:

Hier ist die Grundbedingung fur unser Fibonacci-Programm:

Diese Bedingung pruft, ob der Wert von "Zahl‚" in unserem Fibonacci-Programm gleich oder kleiner als 1 ist Sollte ich Rekursion verwenden?

Was ist der Vorteil der Verwendung von Rekursion gegenuber iterativen Funktionen? Technisch gesehen können beide Methoden das gleiche Ergebnis erzielen. Der Vorteil Die Rekursion ist einfacher zu lesen.

Wenn Sie eine rekursive Funktion sehen, ist es klar, dass die Antwort auf ein Problem darin besteht, sie in kleinere Teile zu zerlegen. Während iterative Schleifen manchmal schneller sein können, werden rekursive Funktionen aufgrund ihrer Lesbarkeit normalerweise bevorzugt.

Da rekursive Funktionen leichter zu lesen sind, sind sie auch einfacher zu warten und zu debuggen. Dies ist besonders nutzlich, wenn Sie komplexe Algorithmen schreiben, die möglicherweise schwer zu verstehen sind.

Schlussfolgerung

Eine rekursive Funktion ist eine Funktion, die sich selbst aufruft, um die Lösung eines Problems zu finden. ;

Rekursive Funktionen zerlegen ein Problem in mehrere Teile und lösen einen Teil des Problems pro Iteration. Rekursive Funktionen werden häufig verwendet, um Fakultäten und Zahlen in der Fibonacci-Folge zu berechnen. Sie werden auch in einer Reihe von Algorithmen verwendet.

Jetzt sind Sie bereit, mit rekursiven Funktionen in Python zu arbeiten.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method