Voraussetzungen
Du kennst die Inhalte aus Teil 6 und arbeitest mit einem lokalen Python-3-Interpreter (ab Python 3.10), beispielsweise in Thonny.
Das lernst du in dieser Lektion
- For-Schleifen schreiben.
- Range mit Start, Ende und Schritt verwenden.
- Ergebnisse aufsummieren.
Gleiche Aufgabe, wechselnder Wert
Für eine kleine Tabelle möchten wir den Materialbedarf für ein bis fünf Teile ausgeben. Mit einer Schleife schreiben wir die Berechnung nur einmal:
gewicht_pro_teil_g = 18.5
for anzahl in range(1, 6):
bedarf_g = anzahl * gewicht_pro_teil_g
print(f"{anzahl} Teile: {bedarf_g:.1f} g")
Speichere bedarfstabelle.py. In jedem Durchlauf erhält anzahl den nächsten Wert aus der Zahlenfolge. Der eingerückte Schleifenrumpf wird mit diesem Wert ausgeführt. Nach dem letzten Wert läuft das Programm hinter der Schleife weiter.
Warum steht dort 6?
Bei range(1, 6) ist der Start enthalten und das Ende ausgeschlossen. Es entstehen die Zahlen 1, 2, 3, 4 und 5. range(5) liefert dagegen 0 bis 4. Mit range(0, 11, 2) erhältst du 0, 2, 4, 6, 8 und 10. Die dritte Zahl ist die Schrittweite; sie darf nicht 0 sein.
Eine rückwärts laufende Folge ist ebenfalls möglich:
for zahl in range(3, 0, -1):
print(zahl)
print("Start!")
Hier werden 3, 2, 1 und anschließend Start! ausgegeben. Die letzte Zeile ist nicht eingerückt und gehört deshalb nicht zum wiederholten Bereich.
Werte sammeln: ein Zähler und eine Summe
summe = 0
for zahl in range(1, 6):
summe += zahl
print(summe)
+= aktualisiert die Variable: summe += zahl bedeutet hier dasselbe wie summe = summe + zahl. Vor der Schleife starten wir bei 0. Nach fünf Durchläufen beträgt die Summe 15.
Setzt du summe = 0 versehentlich in die Schleife, wird der bisherige Zwischenstand in jedem Durchlauf gelöscht. Überlege deshalb bei jeder Variable: Soll sie einmal vor der Schleife initialisiert oder in jedem Durchlauf neu berechnet werden?
Eine Wertetabelle prüfen
Kontrolliere die erste und letzte Tabellenzeile. Für ein Teil erwarten wir 18.5 g, für fünf Teile 92.5 g. Wenn sechs Zeilen erscheinen oder bei 0 begonnen wird, stimmt wahrscheinlich der gewählte Bereich nicht. Ändere danach nur gewicht_pro_teil_g und prüfe, ob alle Tabellenzeilen dazu passen.
for kann auch Texte und Datensammlungen durchlaufen. Listen und das zusätzliche Nummerieren mit enumerate() behandeln wir in Teil 9.
Mitmach-Aufgabe
Gib eine Tabelle für 2, 4, 6, 8 und 10 Teile aus. Jedes Teil wiegt 12 g. Ergänze nach der Schleife die einmalige Meldung „Tabelle fertig“.
Versuche die Aufgabe zuerst selbst. Vergleiche danach deinen Ansatz mit der Musterlösung. Andere Lösungen sind möglich, wenn sie dieselben Anforderungen erfüllen.
Musterlösung
for anzahl in range(2, 11, 2):
gewicht_g = anzahl * 12
print(f"{anzahl} Teile: {gewicht_g} g")
print("Tabelle fertig")
Ergebnis prüfen
Die Gewichte lauten 24, 48, 72, 96 und 120 g. Die Abschlussmeldung erscheint genau einmal.
Typische Stolperstellen
Der Endwert von range() wird nicht erreicht. Eine zu weit eingerückte Abschlussmeldung erscheint bei jedem Durchlauf. range() arbeitet mit ganzen Zahlen.
Was du jetzt kannst
- For-Schleifen schreiben.
- Range mit Start, Ende und Schritt verwenden.
- Ergebnisse aufsummieren.
Passendes Cheatsheet
Zum Nachschlagen: Cheatsheet 06 – Schleifen in Python. Dort findest du auch den vorhandenen PDF-Download.
Im nächsten Teil
In Teil 8 geht es um while-Schleifen und einfache Menüs. Wiederhole Abläufe bis zu einer Abbruchbedingung und baue ein erstes Konsolenmenü.
