At My Fingertips
Grafik 1: Grafik 2:
Die Sterne der ersten Grafik sind verschiedener Grösse (stetig steigend), die Sterne der anderen Grafik nicht. Die erste Grafik hat zudem 7 Sterne, die zweite 8.
def reihe_a(anzahl: int, farbe: Color) -> Graphic:
SEITE = 50
STERN = compose(
triangle(SEITE, SEITE, 60, farbe),
rotate(180, triangle(SEITE, SEITE, 60, farbe))
)
reihe = empty_graphic()
for n in range(anzahl):
reihe = beside(reihe, STERN)
return reihe
show_graphic(reihe_a(8, rgb_color(250, 10, 250)))
def reihe_b(anzahl: int, farbe: Color) -> Graphic:
reihe = empty_graphic()
for n in range(anzahl):
seite = n * 10
stern = compose(
triangle(seite, seite, 60, farbe),
rotate(180, triangle(seite, seite, 60, farbe))
)
reihe = beside(reihe, stern)
return reihe
show_graphic(reihe_b(8, rgb_color(250, 10, 250)))
In der Funktion reihe_a
bleibt der Wert der Variable SEITE
immer gleich und damit auch die Grösse der Sterne. Man erkennt das auch daran, dass der Wert der Variable STERN
vor der Schleife genau einmal zugewiesen wird. Überprüfen Sie:
In der Funktion reihe_b
wird der Wert der Variable seite
bei jedem Schleifendurchlauf neu berechnet. Der Wert in seite
ist abhängig von der sich ändernden Schleifenvariable n
. Damit ändert sich auch der Wert der Variable stern
bei jedem Schleifendurchlauf: Der Stern, der neu hinzugefügt wird, wird bei jedem Schleifendurchlauf grösser. Überprüfen Sie:
Weil der erste Stern der Grafik mit den sich verändernden Sternen eine Seitenlänge von 0 hat: Er ist also nicht sichtbar, es gibt ihn nicht.
Der erste Schritt wird jetzt erst in der Schleife jeweils ausgeführt, da die Grafik bei jedem Schleifendurchlauf neu berechnet werden kann:
def reihe_b(anzahl: int, farbe: Color) -> Graphic:
reihe = empty_graphic() # 2 Akkumulator (leer) erstellen
for n in range(anzahl): # 3 Schleife
seite = n * 10
stern = compose( # 1 zuzufügendes Element
triangle(seite, seite, 60, farbe),
rotate(180, triangle(seite, seite, 60, farbe))
)
reihe = beside(reihe, stern)
return reihe # 4 Akkumulator (gefüllt) zurückgeben
Sicherlich haben Sie bemerkt, dass in der Funktion reihe_a
die Variablen SEITE
und STERN
in Grossbuchstaben geschrieben sind, jedoch in reihe_b
in Kleinbuchstaben: seite
und stern
.
Man schreibt Variablen mit Grossbuchstaben, wenn sie Konstanten sind. Konstanten sind Variablen, deren Wert sich nie ändert. Um dies in Python stilistisch zu signalisieren, werden solche Variablen gross geschrieben.
Die Variablen seite
und stern
sind mit Kleinbuchstaben geschrieben, weil sich ihr Wert immer wieder verändert, es sind also variable Variablen, keine Konstanten.
Erstellen Sie folgende Grafik:
Tipp: Erstellen Sie grüne gleichschenklige Dreicke mit winkel=100
° und drehen Sie sie um -140
°.
def tannenbaum(anzahl_aeste: int) -> Graphic:
aeste = empty_graphic() # leeren Akkumulator erstellen
for n in range(anzahl_aeste, 0, -1): # Schleifenkopf
seite = n * 30
# sich ändernde Grafik erstellen
ast = rotate(-140, triangle(seite, seite, 100, GRUEN))
aeste = above(ast,aeste) # zum Akkumulator hinzufügen
# Stamm hinzufügen, Baum zurückgeben
return above(aeste, rectangle(seite, 2 * seite, BRAUN))
This activity has been created by Gall and is licensed under CC BY-SA 4.0.
Schleifen: Variation
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)