Seite 1 von 1

Wie kann man mehrere for-Schleifen verwenden?

Verfasst: Sonntag 14. Januar 2018, 14:58
von NewToPython
Hallo Ihr Lieben,

wie mein Name schon sagt, bin ich new to python. Auch ist das mein erster Post in einem Forum. Ich bin sozusagen noch bei den very basics. Nun habe ich mich seit ein, zwei Tagen mit dem Turtle beschäftigt.

Ich habe es geschafft einen Stern bzw. mehrere Sterne nebeneinander zu zeichen. Jedoch nicht so, wie ich es möchte. Habe lange rum probiert, leider nichts gefunden, auch nicht im Google. Ich möchte dass der Turtle immer nach dem Zeichnen eines Sterns nach vorne oder nach oben bewegt, sodass die Sterne an verschiedenen Plätzen gezeichnet werden und nicht immer an der selben Stelle.

Bisher ist es folgendes, was ich damit erreichen konnte:

import turtle
hello = turtle.Turtle() # Die ganze Aufgabe habe ich mir selbst ausgedacht :), Umer

def Star(länge, kurve):
hello.forward(länge)
hello.right(kurve)

for i in range(5): # wiederholt sich 5 mal. Das heißt, es zeichnet den ersten Stern!
Star(200, 144)
hello.forward(200) # geht nach dem ersten Stern 200 weiter, also am Ende des Sterns.

for i in range(5): # wiederholt sich weider 5 mal und zeichnet den zweiten Stern außerhalb des ersten.
Star(200, 144)
hello.backward(400) # geht nach dem zweiten Stern 400 zurück, also am Ursprung

for i in range(5):
Star(200, 144)
hello.right(180)

for i in range(5):
Star(200, 144)


Wie Ihr sehen könnt, habe ich 5 for-Schleifen für 3 Sterne verwendet, was auf jeden Fall 3 zu viel sind!

Vielen Dank schon mal für Eure Hilfe.

LG
NewToPython

Re: Wie kann man mehrere for-Schleifen verwenden?

Verfasst: Sonntag 14. Januar 2018, 15:23
von Sirius3
@NewToPython: Du zeichnest 4 Sterne mit 4 for-Schleifen, von daher verstehe ich die Frage nicht ganz.

Die Funktion »Stern« zeichnet keinen Stern, sondern nur eine Seite. Was muß man daher noch machen, damit die Funktion wirklich den kompletten Stern zeichnet?

Re: Wie kann man mehrere for-Schleifen verwenden?

Verfasst: Sonntag 14. Januar 2018, 15:30
von NewToPython
@Sirius3: Danke für die Antwort erstmal.

was ich wollte bzw. will ist, zu wissen, ob das gleich aber mit weniger bzw einer for-Schleife möglich ist, anstatt die 4 Schleifen zu nutzen.

Re: Wie kann man mehrere for-Schleifen verwenden?

Verfasst: Sonntag 14. Januar 2018, 16:38
von nezzcarth
Sirius3 hat es doch schon angesprochen: Warum hast du eine Funktion, die nur einen Teil des Sterns zeichnet, statt den gesamten Stern?

Zum Beispiel so:

Code: Alles auswählen

import turtle

def star(length, angle=144):
    for _ in range(5):
        turtle.forward(length)
        turtle.right(angle)

for _ in range(4):
    star(50)
    turtle.up()
    turtle.forward(55)
    turtle.down()

Re: Wie kann man mehrere for-Schleifen verwenden?

Verfasst: Sonntag 14. Januar 2018, 18:02
von NewToPython
@nezzcarth: vielen lieben Dank für den Code. Ich habe mich nun über eine Stunde auseinander gesetzt und mir den (deinen) Code Schritt für Schritt angeschaut. Nun habe ich den Dreh raus. Ich danke dir so sehr.

@Sirius3: Entschuldige bitte. Du hattest versucht, mir die Richtung zu zeigen. Aber wie gesagt, bin ich noch ein Anfänger. Also Sorry, dass ich es nicht gleich kapiert habe und Danke für deine Zeit trotzdem.

LG an Euch Beide!
NewToPython