For-Schleifen
Zuletzt aktualisiert am 2025-10-31 | Diese Seite bearbeiten
Übersicht
Fragen
- Wie kann ich ein Programm dazu bringen, viele Dinge zu tun?
Ziele
- Erläutern Sie, wozu for-Schleifen normalerweise verwendet werden.
- Verfolgen Sie die Ausführung einer einfachen (nicht verschachtelten) Schleife und geben Sie die Werte der Variablen in jeder Iteration korrekt an.
- Schreiben Sie for-Schleifen, die das Accumulator-Muster verwenden, um Werte zu aggregieren.
Eine for-Schleife führt Befehle für jeden Wert in einer Sammlung einmal aus.
- Die Berechnung der Werte in einer Liste ist genauso mühsam wie die
Arbeit mit
pressure_001,pressure_002, etc. - Eine for-Schleife weist Python an, einige Anweisungen für jeden Wert in einer Liste, einer Zeichenkette oder einer anderen Sammlung einmal auszuführen.
- “führe für jedes Ding in dieser Gruppe diese Operationen aus”
- Diese
forSchleife ist äquivalent zu:
- Und die Ausgabe der
forSchleife ist:
AUSGABE
2
3
5
Eine for-Schleife besteht aus einer Auflistung, einer
Schleifenvariablen und einem Körper.
- Die Schleife wird auf der Sammlung
[2, 3, 5]ausgeführt. - Der Körper,
print(number), gibt an, was für jeden Wert in der Sammlung zu tun ist. - Die Schleifenvariable,
number, ändert sich bei jeder Iteration der Schleife.- Das “aktuelle Ding”.
Die erste Zeile der for-Schleife muss mit einem
Doppelpunkt enden, und der Körper muss eingerückt sein.
- Der Doppelpunkt am Ende der ersten Zeile signalisiert den Beginn eines Blocks von Anweisungen.
- Python verwendet Einrückungen anstelle von
{}oderbegin/end, um Schachtelungen anzuzeigen.- Jede konsistente Einrückung ist erlaubt, aber fast jeder verwendet vier Leerzeichen.
FEHLER
IndentationError: expected an indented block
- Die Einrückung ist in Python immer sinnvoll.
FEHLER
File "<ipython-input-7-f65f2962bf9c>", line 2
lastName = "Smith"
^
IndentationError: unexpected indent
- Dieser Fehler kann behoben werden, indem die zusätzlichen Leerzeichen am Anfang der zweiten Zeile entfernt werden.
Schleifenvariablen können beliebig benannt werden.
- Wie alle Variablen sind auch die Schleifenvariablen:
- Wird bei Bedarf erstellt.
- Bedeutungslos: ihre Namen können alles Mögliche sein.
Der Körper einer Schleife kann viele Anweisungen enthalten.
- Aber keine Schleife sollte mehr als ein paar Zeilen lang sein.
- Für Menschen ist es schwer, sich größere Codeabschnitte zu merken.
AUSGABE
2 4 8
3 9 27
5 25 125
Verwenden Sie range, um über eine Folge von Zahlen zu
iterieren.
- Die eingebaute Funktion
rangeerzeugt eine Folge von Zahlen.- Keine Liste: Die Zahlen werden bei Bedarf erzeugt, um die Schleifenbildung über große Bereiche effizienter zu machen.
-
range(N)ist die Zahlen 0..N-1- Genau die zulässigen Indizes einer Liste oder Zeichenkette der Länge N
AUSGABE
a range is not a list: range(0, 3)
0
1
2
Das Accumulator-Muster macht aus vielen Werten einen einzigen.
- Ein häufiges Muster in Programmen ist to:
- Initialisiere eine Accumulator-Variable auf Null, die leere Zeichenkette oder die leere Liste.
- Aktualisiere die Variable mit Werten aus einer Sammlung.
PYTHON
# Sum the first 10 integers.
total = 0
for number in range(10):
total = total + (number + 1)
print(total)
AUSGABE
55
- Lies
total = total + (number + 1)als:- Addiere 1 zum aktuellen Wert der Schleifenvariablen
number. - Addiere das zum aktuellen Wert der Akkumulatorvariablen
total. - Weisen Sie dies
totalzu und ersetzen Sie damit den aktuellen Wert.
- Addiere 1 zum aktuellen Wert der Schleifenvariablen
- Wir müssen
number + 1hinzufügen, weilrange0..9 erzeugt, nicht 1..10.
Klassifizierung von Fehlern
Ist ein Einrückungsfehler ein Syntaxfehler oder ein Laufzeitfehler?
Ein IndentationError ist ein Syntaxfehler. Programme mit Syntaxfehlern können nicht gestartet werden. Ein Programm mit einem Laufzeitfehler wird zwar gestartet, aber unter bestimmten Bedingungen wird ein Fehler ausgelöst.
| Line no | Variables |
|---|---|
| 1 | total = 0 |
| 2 | total = 0 char = ‘t’ |
| 3 | total = 1 char = ‘t’ |
| 2 | total = 1 char = ‘i’ |
| 3 | total = 2 char = ‘i’ |
| 2 | total = 2 char = ‘n’ |
| 3 | total = 3 char = ‘n’ |
Übung Akkumulieren (continued)
Erstellen eines Akronyms: Ausgehend von der Liste
["red", "green", "blue"], erstellen Sie das Akronym
"RGB" mit Hilfe einer for-Schleife.
Hinweis: Möglicherweise müssen Sie eine String-Methode verwenden, um das Akronym richtig zu formatieren.
Kumulative Summe
Ordnen Sie die folgenden Codezeilen neu an und rücken Sie sie richtig
ein, so dass sie eine Liste mit der kumulierten Summe der Daten
ausgeben. Das Ergebnis sollte [1, 3, 5, 10] sein.
Identifizierung von Variablennamensfehlern
- Lesen Sie den folgenden Code und versuchen Sie, die Fehler zu identifizieren, ohne ihn auszuführen.
- Führen Sie den Code aus und lesen Sie die Fehlermeldung. Was für ein
Typ von
NameErrorist dies Ihrer Meinung nach? Ist es eine Zeichenkette ohne Anführungszeichen, eine falsch geschriebene Variable oder eine Variable, die definiert werden sollte, aber nicht definiert wurde? - Beheben Sie den Fehler.
- Wiederholen Sie die Schritte 2 und 3, bis Sie alle Fehler behoben haben.
- Bei Python-Variablennamen wird zwischen Groß- und Kleinschreibung
unterschieden:
numberundNumberbeziehen sich auf unterschiedliche Variablen. - Die Variable
messagemuss mit einem leeren String initialisiert werden. - Wir wollen die Zeichenkette
"a"zumessagehinzufügen, nicht die undefinierte Variablea.
Identifizierung von Elementfehlern
- Lesen Sie den folgenden Code und versuchen Sie, die Fehler zu identifizieren, ohne ihn auszuführen.
- Führen Sie den Code aus, und lesen Sie die Fehlermeldung. Um welche Art von Fehler handelt es sich?
- Beheben Sie den Fehler.
- Eine for-Schleife führt Befehle einmal für jeden Wert in einer Sammlung aus.
- Eine for-Schleifebesteht aus einer Sammlung, einer Schleifenvariablen und einem Körper.
- Die erste Zeile der for-Schleife muss mit einem Doppelpunkt enden, und der Körper muss eingerückt sein.
- Die Einrückung ist in Python immer sinnvoll.
- Schleifenvariablen können beliebig benannt werden (es wird jedoch dringend empfohlen, einen aussagekräftigen Namen für die Schleifenvariable zu verwenden).
- Der Körper einer Schleife kann viele Anweisungen enthalten.
- Benutze
range, um über eine Folge von Zahlen zu iterieren. - Das Accumulator-Muster macht aus vielen Werten einen einzigen.