Python Rekursion ganz EINFACH erklärt! | Python Tutorial PyJa https://www.youtube.com/watch?v=Moks3haAerw Transkript (automatisch erstellt) 0:00 viele sind ihre kussion als schwer an ich selbst hatte auch anfangs meine Probleme wenn du es aber einmal verstanden hast ist es kein Problem mehr 0:07 daher erkläre ich dir ganz einfach den Aufbau und Vorbild zu einer Nachteile der Regression gegenüber von schleifen wir wollen den Aufbau der Regression mit 0:15 Hilfe der Fibonacci Folge verstehen dabei kommen wir leider um die Theorie nicht rum wir müssen erstmal verstehen was die Fibonacci Folge ist die 0:23 Fibonacci Folge ist eine Folge von Zahlen bei der jede Zahl die Summe der beiden vorherigen Zahlen in der Sequenz ist das bedeutet ganz einfach sie 0:32 beginnt bei Null und Eins und wird dann weiter berechnet aus der letzten plus der vorletzten Zahl somit sind die ersten sechs Zahlen 0:42 011235 wir merken uns die Position das brauchen wir gleich noch mal nun der Aufbau dafür definieren wir uns die Funktion Fibonacci mit dem Parameter 0:51 Position der Parameter gibt an für die wievielte Position wie die Fibonacci Zahlen berechnen wollen nach der klassischen Definition müssen wir jetzt 0:59 nur die Zahl der letzten Position plus die Zahl der vorletzten Position verrechnen hier kommt die Rekursion ins Spiel wir rufen in der Funktion 1:07 Fibonacci nochmal die Funktion Fibonacci auf als Parameter wird dann einmal die letzte Position und einmal die vorletzte Position übergeben mit Return geben wir 1:17 einfach die jeweiligen Werte der Positionen zurück falls das ganze verwirrend klingt kein Problem mit folgendem Beispiel wird klar wir wollen 1:25 beispielsweise die Fibonacci Zahl einer Position zwei berechnen wenn wir uns noch an den Anfang erinnern wissen wir dass an der zweiten Position die Zahl 1 1:33 steht jetzt übergeben wir unsere Funktion also den Parameter 2 damit übersichtlich bleibt und es verständlich wird werde ich zur Fibonacci jetzt Fips 1:42 sagen wenn wir jetzt die letzte und vorletzte Zahl addieren wollen müssen wir Flip der ersten Position Plus für den Position berechnen wir wissen dass 1:50 ein erster Position der fünf Folge die 1 steht und dann holt der Position die Null ich denke das Prinzip ist trotzdem Rechnung klar geworden um wirklich zu 1:59 sehen glaubst du es verstanden hast kannst du nun die fit Zahl der dritten Position berechnen schreib deine Lösung gerne in die Kommentare schauen wir mal 2:07 ob du auch richtig gerechnet hast aber zurück zum Hauptthema bei uns ergibt sich nämlich das Problem dass wir mit unserer Funktion in eine 2:14 endlos-rekkussion gelangen da wir bei der Position einfach in ein negativen Bereich gehen das ist einfach überprüfbar mit einem printbefehl 2:22 welcher die aktuelle Position ausgibt jetzt rufen wir die Funktion mit einer beliebigen Position auf und starten das ganze wir bekommen sofort einen Fehler 2:31 der uns sagt dass wir die maximale Anzahl an Regressionen erreicht haben die Positionen sind also negativ geworden ich entferne die print-zeile 2:39 wieder denn wir benötigen sie jetzt nicht mehr aber wie lassen sich die negativen Positionen verhindern ganz einfach mit Hilfe einer fs-abfrage in 2:47 der ev-abfrage fragen wir ab ob die Position kleiner als zwei ist darunter fallen dann die relevanten Position 0 und 1 deren Wert gleich der Position ist 2:56 und nicht aus deiner Zahlen addiert werden somit können wir Stelle der IFA Prager auch gleich die Position mit Return zurückgeben nun müssen wir nur 3:04 noch hier das zweite return Statement einrücken damit haben wir erfolgreiche Endlosschleife verhindert und können jetzt noch einen printbefehl um den 3:11 Aufruf der Funktion schreiben probieren wir jetzt das erste mal aus und wir sehen dass der Wert ist 5 und wir sehen auch das eine fünften Position die 5 3:21 stehen muss probieren wir in höheren Wert wie 10 aus und dann haben wir 55 und das passt ebenfalls je höher die Positionswerte werden desto länger 3:33 benötigt der Computer dafür weil das viele rechten Schritte sind bei meinem Rechner merke ich das bei einer Produktionszahl von 35 wenn ich das 3:42 nämlich ausführe dann braucht er einiges an Zeit und rechtens wird mir dann aber aus hier ist eben ein Nachteil der Regression sie ist 3:50 zwar sehr elegant und oft weniger Code aber langsamer und teilweise ineffizienter als die Schleife die Schleife hat den Code innerhalb Sekunden 3:59 ausgeführt wofür die Regression eben länger braucht deshalb lohnt es sich auf jeden Fall auch die Schleifen zu beherrschen zum einschieben kann ich dir 4:07 da nur die Schleife ans Herz legen um diese zu lernen oder auch einfach besser zu verstehen solltest du jetzt hier links auf das Video klicken viel Spaß 4:15 damit