Python_Turtle_Graphics

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzername2
User
Beiträge: 1
Registriert: Mittwoch 2. März 2022, 16:54

Bild
Bild:
https://ibb.co/4fdwg5W

Code: Alles auswählen

import turtle

turtle.clear()
t = turtle


def baum(x):
    if x < 5:
        return

    else:
        t.forward(x)
        t.left(45)
        baum(x/2)
        t.right(90)
        baum(x/2)
        t.left(45)
        t.back(x)

t.left(90)
baum(100)


Guten Abend,

ich habe ein großes Verständnis Problem bei diesem Code.
Ich kann nicht nachvollziehen wie dieser baum entsteht.

Meine Denkweise:
* Pfeil dreht sich zum Start um 90 Grad nach links

* Funktion Baum mit dem Wert 100 wird aufgerufen
* 100 > 5, also gehe 100 nach oben
* drehe dich um 45 Grad nach links

* Funktion Baum mit wert 50 wird aufgerufen und ist 5 <
* Gehe 50 Schritte weiter,
* Drehe dich um 45 Grad nach Links

* Funktion Baum mit dem Wert 25 wird aufgerufen, 5 < 25
* Gehe 25 schritte weiter
* Drehe dich um 45 Grad nach Links

*Funktion Baum mit dem Wert 12 wird aufgerufen, 5 < 12
*Gehe 12 Schritte weiter
*Drehe dich um 45 Grad

*Funktion Baum mit dem Wert 6 wird aufgerufen, 5 < 6
*Gehe 6 schritte weiter
*Drehe dich um 45 Grad

*Funktion Baum mit dem Wert 3 wird aufgerufen, 3 < 5
*Return


Nun weiße ich nicht mehr was im code passiert.
Was bringt dieses Return und wie geht es weiter?

Mit freundlichen Grüßen
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Das `return` beendet die Funktion und das Programm läuft dort weiter, wo die Funktion aufgerufen worden ist, also bei dreh dich um 90 Grad.
Bei Deiner Aufzählung hast Du übrigens immer das t.forward(x) vergessen
Manul
User
Beiträge: 53
Registriert: Samstag 13. Februar 2021, 16:00

Sirius3 hat geschrieben: Mittwoch 2. März 2022, 18:47Bei Deiner Aufzählung hast Du übrigens immer das t.forward(x) vergessen
Benutzername2 hat geschrieben: Mittwoch 2. März 2022, 17:19 * 100 > 5, also gehe 100 nach oben
...
* Gehe 50 Schritte weiter,
...
* Gehe 25 schritte weiter
...
*Gehe 12 Schritte weiter
...
*Gehe 6 schritte weiter
Hat er???
Antworten