Übung 14 – Listen
Ziel: Sie speichern viele Werte in einer Liste, erweitern sie mit append und gehen sie mit for durch. Bearbeiten Sie die Aufgaben der Reihe nach und tragen Sie Tabellen und Programme in die Reflexion zu Sitzung 4 ein. Ihre Lösung darf anders aussehen – wichtig ist, dass sie für alle Tests das Richtige ausgibt.
1. Listen anlegen und benutzen
einkauf = ["Brot", "Milch", "Äpfel"]
print(len(einkauf))
print(einkauf[0])
print(einkauf[-1])
einkauf.append("Käse")
for ding in einkauf:
print(f"- {ding}")3 Brot Äpfel - Brot - Milch - Äpfel - Käse
Ausprobieren: Kopieren Sie den Code (Knopf „Kopieren“), führen Sie ihn aus und hängen Sie dann mit append einen eigenen Eintrag an.
- Eine Liste steht in eckigen Klammern, die Einträge sind durch Kommas getrennt.
- Der Index beginnt bei 0:
einkauf[0]ist der erste,einkauf[-1]der letzte Eintrag. len()zählt die Einträge,append()hängt einen neuen hinten an.einkauf[3]bei drei Einträgen gibtIndexError: list index out of range.
2. Aufgaben
Aufgabe 3a · Einkaufsliste Pflicht, ca. 10 Min.
Eine Einkaufsliste soll so lange Einträge sammeln, bis jemand nur Enter drückt. Danach zeigt sie die ganze Liste an.
Ihre Aufgabe
- Tragen Sie ein, was das Programm bei den Eingaben am Ende ausgeben muss. „Enter“ heißt: leere Eingabe.
Eingaben nacheinander Anzahl (erwartet) Liste (erwartet) Brot, Milch, EnterEnterÄpfel, Käse, Nudeln, Enter - Schreiben Sie
einkauf.py: Es beginnt mit einer leeren Liste und fragt mitWas brauchen Sie? (Enter = fertig)so lange nach Einträgen, bis die Eingabe leer ist. Jeder Eintrag kommt mitappendin die Liste. - Geben Sie danach die Anzahl und mit
forjeden Eintrag genau so aus:Was brauchen Sie? (Enter = fertig) Brot Was brauchen Sie? (Enter = fertig) Milch Was brauchen Sie? (Enter = fertig) Ihre Liste hat 2 Einträge: - Brot - Milch
- Testen Sie mit allen drei Zeilen der Tabelle.
Fertig sind Sie, wenn alle drei Tests stimmen – auch der mit einer leeren Liste.
Hilfen – erst öffnen, wenn Sie nicht weiterkommen (zum Öffnen anklicken):
Tipp anzeigen
Hier treffen sich beide Schleifen: Wie viele Einträge kommen, wissen Sie vorher nicht – also while ding != "":. Die fertige Liste gehen Sie dann mit for ding in einkauf: durch. Die Anzahl liefert len(einkauf).
Gerüst anzeigen
Ersetzen Sie jedes ___ durch den passenden Ausdruck.
einkauf = []
ding = input("Was brauchen Sie? (Enter = fertig) ")
while ___:
einkauf.___(ding)
ding = input("Was brauchen Sie? (Enter = fertig) ")
print(f"Ihre Liste hat {___} Einträge:")
for ___ in einkauf:
print(f"- {ding}")Lösung anzeigen
| Eingaben | Anzahl | Liste |
|---|---|---|
Brot, Milch, Enter | 2 | - Brot - Milch |
Enter | 0 | (keine Einträge) |
Äpfel, Käse, Nudeln, Enter | 3 | - Äpfel - Käse - Nudeln |
einkauf = []
ding = input("Was brauchen Sie? (Enter = fertig) ")
while ding != "":
einkauf.append(ding)
ding = input("Was brauchen Sie? (Enter = fertig) ")
print(f"Ihre Liste hat {len(einkauf)} Einträge:")
for ding in einkauf:
print(f"- {ding}")Was brauchen Sie? (Enter = fertig) Äpfel Was brauchen Sie? (Enter = fertig) Käse Was brauchen Sie? (Enter = fertig) Nudeln Was brauchen Sie? (Enter = fertig) Ihre Liste hat 3 Einträge: - Äpfel - Käse - Nudeln
Ihre Liste hat 0 Einträge:.Aufgabe 3b · Noten auswerten Pflicht, ca. 10 Min.
Für die Noten [2, 1, 3, 2, 4] sollen der Durchschnitt und die beste Note berechnet werden – mit einer einzigen for-Schleife.
Ihre Aufgabe
- Rechnen Sie Durchschnitt und beste Note von Hand aus und tragen Sie beides ein.
Noten Durchschnitt (erwartet) Beste Note (erwartet) [2, 1, 3, 2, 4][3, 3, 3][5, 4, 2] - Schreiben Sie
noten.py: Gehen Sie mitfordurch die Liste, zählen Sie insummezusammen und merken Sie sich mitifinbestedie kleinste Note. - Geben Sie beides genau so aus:
Durchschnitt: 2.4 Beste Note: 1
- Testen Sie auch die beiden anderen Listen aus der Tabelle, indem Sie die erste Zeile ändern.
Fertig sind Sie, wenn alle drei Listen das Ergebnis aus Ihrer Tabelle liefern.
Für Schnelle: Zählen Sie für [2, 1, 3, 2, 4, 1, 2], wie oft jede Note von 1 bis 6 vorkommt. Tipp: eine for-Schleife in einer for-Schleife.
Hilfen – erst öffnen, wenn Sie nicht weiterkommen (zum Öffnen anklicken):
Tipp anzeigen
Starten Sie mit beste = noten[0], also mit der ersten Note. In der Schleife gilt: Ist note < beste, wird beste = note. Den Durchschnitt rechnen Sie nach der Schleife: summe / len(noten).
Gerüst anzeigen
Ersetzen Sie jedes ___ durch den passenden Ausdruck.
noten = [2, 1, 3, 2, 4]
summe = 0
beste = noten[0]
for note in noten:
summe = ___
if ___:
beste = note
print(f"Durchschnitt: {summe / len(noten)}")
print(f"Beste Note: {beste}")Lösung anzeigen
| Noten | Durchschnitt | Beste Note |
|---|---|---|
[2, 1, 3, 2, 4] | 2.4 | 1 |
[3, 3, 3] | 3.0 | 3 |
[5, 4, 2] | 3.6666666666666665 (≈ 3,7) | 2 |
noten = [2, 1, 3, 2, 4]
summe = 0
beste = noten[0]
for note in noten:
summe = summe + note
if note < beste:
beste = note
print(f"Durchschnitt: {summe / len(noten)}")
print(f"Beste Note: {beste}")Durchschnitt: 2.4 Beste Note: 1
min(noten) und sum(noten) – die Schleife zeigt Ihnen, was diese Funktionen im Inneren tun. Lange Kommazahlen kürzen Sie mit {wert:.1f}.Für Schnelle:
noten = [2, 1, 3, 2, 4, 1, 2]
for wert in range(1, 7):
anzahl = 0
for note in noten:
if note == wert:
anzahl = anzahl + 1
print(f"Note {wert}: {anzahl}-mal")Note 1: 2-mal Note 2: 3-mal Note 3: 1-mal Note 4: 1-mal Note 5: 0-mal Note 6: 0-mal