Skip to main content

for-Schleifen

Wenn wir über alle Elemente von Tupeln oder Listen iterieren wollen, können wir dies mit einer While Schleife machen.

seq = ["first", "second", "third"]
i = 0
while i < len(seq):
element = seq[i]
print(element)
i = i + 1

Da wir diesen Code so häufig schreiben müssen, gibt es in Python ein spezielles Sprachkonstrukt, dass wir für diese Zwecke einsetzen können. Es sieht wie folgt aus:

for element in seq:
print(element)

for und in sind hier zwei von Python definierte Schlüsselwörter. element ist ein von uns gewählter Variablennamen und seq steht für die Sequenz über die wir iterieren möchten. Python läuft nun über jedes Element in der Sequenz und weist dieses der Variable element zu. In jeder Iteration wird dann der definierte Codeblock (in diesem Fall print(element)) ausgeführt.

Die Range Funktion

In vielen von unseren einfachen Programmen, mussten wir eine fixe Anzahl mal iterieren. Wir haben folgendes Muster immer und immer wieder geschrieben:

i = 0
while i < 10:
print(i)
i = i + 1

Es wäre praktisch, wenn wir die for-Schleife auch für diesen Zweck einsetzen könnten. Nur wollen wir aber nicht jedesmal eine Liste oder ein Tupel erzeugen. Dies wäre aufwändig und würde Speicher verschwenden. Python stellt uns aber eine Funktion zur Verfügung, welche eine Sequenz von Zahlen generiert, ohne diese jedoch im Speicher zu behalten. Diese Funktion heisst range. Damit können wir obigen Code wie folgt schreiben:

for i in range(0, 10):
print(i)

Ausser, dass wir eine Zeile Code sparen, sind die Vorteile dieser Schreibweise, dass wir nie vergessen können, dass wir die Variable i noch um eins erhöhen müssen. Wenn wir uns einmal an die Schreibweise gewöhnt haben, dann wird die Absicht auch deutlicher. Wir sehen direkt im Code durch die range Funktion, dass wir eine fixe Anzahl Iterationen durchführen. Im Gengensatz dazu muss man bei der while Schleife zuerst die Abbruchbedingung und den Schleifenrumpf analysieren um dies zu sehen.

Code zum ausprobieren

Experimente

  • Schreiben Sie mit Hilfe einer for Schleife alle geraden Zahlen von von 0 bis 100 raus. Multiplizieren Sie dabei das erste Mal jedes Element mit 2, das andere Mal verwenden Sie eine if Anweisung. Welche Lösung gefällt Ihnen besser und weshalb?
  • Kopieren Sie die auf Zeile 14 definierte Variable adresse von der Einführung von Tupel. Geben Sie alle Elemente einzeln aus in dem Sie zwei verschachtelte for Schleifen verwenden.

Fragen und Kommentare

Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.