Eine Schleife wiederholt Zeilen
Eine Schleife wiederholt Zeilen, bis eine Grenze erreicht ist. Mit for und while erledigt ein Python-Programm in einem Augenblick, was von Hand Stunden dauern würde.
Das Lab führt ein Protokoll mit Hunderten Zeilen. Wie viele davon sind Fehler? Ein Mensch zählt Zeile für Zeile. Ein Programm zählt in einer Schleife.
Am Ende dieser Lektion
Notiz
Ich kann Arbeit mit einer for- oder while-Schleife wiederholen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Schleife | Zeilen, die sich wiederholen | |
| Durchlauf | ein einzelnes Mal, das der Schleifenblock läuft | |
| range | erzeugt die Zahlen von einem Anfang bis vor ein Ende | range(1, 6) |
| Summenvariable | eine Variable, die in der Schleife wächst | summe |
| Endlosschleife | eine Schleife, die nie aufhört |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
for geht eine Folge von Zahlen durch
Eine for-Schleife nimmt nacheinander jeden Wert einer Folge und führt den eingerückten Block einmal aus. Jede Ausführung ist ein Durchlauf.
range(1, 6) erzeugt die Zahlen 1 bis 5. Das Ende zählt nicht mit. range(5) beginnt bei 0 und endet bei 4.
Ein Beispiel: was range erzeugt
| Aufruf | Zahlen | Anzahl |
|---|---|---|
| range(5) | 0, 1, 2, 3, 4 | 5 |
| range(1, 6) | 1, 2, 3, 4, 5 | 5 |
| range(2, 10, 3) | 2, 5, 8 | 3 |
| range(3, 3) | keine | 0 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Schleife im Terminal
python3 -c "for i in range(3): print(i * 2)"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele glauben, range(1, 6) enthalte auch die 6. Das Ende zählt nicht mit. Wollen Sie die 6 dabeihaben, schreiben Sie range(1, 7).
Eine Summenvariable sammelt über die Durchläufe
Vor der Schleife setzen Sie die Summenvariable auf 0. In jedem Durchlauf addieren Sie etwas dazu. Nach der Schleife steht das Ergebnis darin.
Dieselbe Idee zählt auch: Eine Zählvariable steigt um 1, wenn ein Fall zutrifft.
Die Summe der Zahlen von 1 bis 5
# Die Summe der Zahlen von 1 bis 5.
summe = 0
for zahl in range(1, 6):
summe = summe + zahl
print(zahl, summe)
print("Fertig:", summe)
# Ändern Sie 6 auf 11 und raten Sie die neue Summe vorher.
In einer Schleife zählen, was zutrifft
Verbinden Sie Schleife und if: Gehen Sie alle Zahlen durch und zählen Sie die, die eine Bedingung erfüllen. Der Rest einer Teilung mit % ist dafür das Werkzeug.
Ist zahl % 7 gleich 0, dann ist zahl ein Vielfaches von 7. Die nächsten zwei Befehle zeigen, wie ein Terminal dasselbe zählt.
Fehlerzeilen unter den ersten 60 zählen
head -n 60 /var/log/test.log | grep -c ERRORHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Gruß-Zeilen unter den ersten 60 zählen
head -n 60 /var/log/test.log | grep -c helloHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was die beiden Zahlen bedeuten
Das Lab schreibt beim Start 60 Zeilen. Jede siebte ist eine Fehlerzeile, jede zehnte ein Gruß. Das sind 8 Fehler und 6 Grüße.
Dieselben Zahlen liefert eine Schleife: Sie zählt die Vielfachen von 7 und von 10 von 1 bis 60.
while läuft, solange eine Bedingung stimmt
Eine while-Schleife prüft vor jedem Durchlauf eine Bedingung. Ist sie wahr, läuft der Block, sonst endet die Schleife.
Ändert der Block nie etwas an der Bedingung, entsteht eine Endlosschleife. Prüfen Sie darum, dass jeder Durchlauf der Grenze näher kommt.
Wann ist das Quadrat mindestens 50?
# Die erste Zahl, deren Quadrat mindestens 50 ist.
zahl = 1
while zahl * zahl < 50:
zahl = zahl + 1
print(zahl)
# Ändern Sie 50 auf 200 und raten Sie das Ergebnis vorher.
Eine Schleife in einer Schleife
Der Block einer Schleife darf eine weitere Schleife enthalten. Die innere läuft bei jedem Durchlauf der äußeren komplett.
Der erste Befehl unten schreibt ein kleines Einmaleins in eine Datei, der zweite führt es aus. Es gibt 2 mal 3, also 6 Zeilen aus.
Zwei verschachtelte Schleifen schreiben
printf 'for a in range(1, 3):\n for b in range(1, 4):\n print(a, "mal", b, "ist", a * b)\n' > einmaleins.pyHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Das Einmaleins starten
python3 einmaleins.pyHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Weiterführend
Schreiben Sie eine Schleife, die die Summe aller Zahlen von 1 bis 100 bildet. Sagen Sie das Ergebnis vorher: Es ist 5050.
Ändern Sie dann die Schleife so, dass sie nur die geraden Zahlen addiert. Prüfen Sie Ihre Vorhersage mit Python.