Rückblick
Mit Listen kannst du zum ersten Mal viele Werte unter einem Namen verwalten – und mit der for-in-Schleife bequem durch sie hindurchlaufen. Das ist der letzte Baustein vor den Projekten.
Das kann ich jetzt
- Ich kann eine Liste anlegen und auf einzelne Elemente zugreifen. (5.1)
- Ich weiß, dass ab 0 gezählt wird, und kann den letzten gültigen Index angeben. (5.1)
- Ich kann die Länge einer Liste mit
lenbestimmen. (5.1) - Ich kann mit einer
for-in-Schleife durch eine Liste laufen. (5.2) - Ich kann Summe, Mittelwert, Maximum und Anzahl in einem Durchlauf bestimmen. (5.2)
- Ich kann entscheiden, wann
for-inpasst und wann ich den Index brauche. (5.2)
Gemischte Aufgaben
Aufgabe 1: Zugriff und Länge
noten = [2, 1, 3, 2, 5, 4, 2]
print(len(noten))
print(noten[0])
print(noten[6])
print(noten[len(noten) - 1])
print(noten[2] + noten[3])
a) Notiere die fünf Ausgaben.
b) Was passiert bei noten[7]? Warum ist das kein Tippfehler, sondern ein Denkfehler?
c) Warum liefern die dritte und die vierte Zeile dasselbe? Welche der beiden würdest du schreiben, und warum?
d) Wie kommst du an das zweite Element?
Aufgabe 2: Welche Schleife passt?
noten = [2, 1, 3, 2, 5, 4, 2]
# a)
summe = 0
for note in noten:
summe = summe + note
print(summe)
# b)
for i in range(len(noten)):
print(i, noten[i])
# c)
anzahl = 0
for note in noten:
if note <= 2:
anzahl = anzahl + 1
print(anzahl)
a) Was gibt jeder der drei Abschnitte aus?
b) Bei welchem der drei brauchst du den Index wirklich? Begründe.
c) Schreib Abschnitt a) so um, dass er range und den Index benutzt. Welche Fassung ist besser lesbar?
d) Berechne zusätzlich den Mittelwert und gib ihn auf zwei Nachkommastellen gerundet aus.
Tipp zu d)
Der Mittelwert ist die Summe geteilt durch die Anzahl. Die Anzahl liefert len(noten), und round(wert, 2) rundet auf zwei Nachkommastellen.
Aufgabe 3: Ein Säulendiagramm
Zeichne aus einer Liste von Werten ein Säulendiagramm: für jeden Wert eine gefüllte Säule, alle nebeneinander, mit einer kleinen Lücke dazwischen.
noten = [2, 1, 3, 2, 5, 4, 2]
a) Überleg zuerst: Was muss je Säule passieren? Was muss nur einmal am Anfang passieren?
b) Schreib das Programm. Die Höhe einer Säule soll dem Wert mal 40 entsprechen, die Breite 50 betragen.
c) Bestimme zusätzlich das Maximum der Liste und gib es aus.
d) Färbe die höchste Säule anders als die übrigen. Warum brauchst du dafür zwei Durchläufe durch die Liste?
Tipp 1: Eine Säule
Eine Säule ist ein Rechteck. Wenn die Turtle nach rechts schaut, zeichnest du es so:
left(90)
forward(hoehe)
right(90)
forward(breite)
right(90)
forward(hoehe)
left(90)
Danach steht die Turtle rechts neben der Säule und schaut wieder nach rechts – bereit für die nächste.
Tipp 2: Die Lücke
Zwischen zwei Säulen bewegst du dich mit gehobenem Stift weiter:
penup()
forward(15)
pendown()
Tipp 3: zu d)
Erst musst du wissen, welcher der höchste Wert ist – und das weißt du erst, wenn du die ganze Liste einmal angesehen hast. Deshalb: ein Durchlauf zum Suchen des Maximums, ein zweiter zum Zeichnen.