Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

For-Schleifen

Die for-Schleife kann über jede Sequenz von Elementen iterieren, beispielsweise über eine Liste oder einen String.

Die Syntax einer for-Schleife ist wie folgt:

for val in sequenz:
    Schleifenkörper

Hierbei ist val eine Variable, die in jeder Iteration den Wert des Elements aus der Sequenz annimmt.

Die Schleife wird solange ausgeführt, bis das letzte Element der Sequenz erreicht ist. Durch Einrückung wird der Schleifenkörper vom restlichen Code abgegrenzt.

Flussdiagramm der for-Schleife

../../../_images/for_loop.png
zahlen = [1, 2, 3, 4]
summe = 0

for val in zahlen:
    summe = summe+val

print("Die Summe beträgt", summe)
>>> %Run -c $EDITOR_CONTENT
Die Summe beträgt 10

Die break-Anweisung

Mit der break-Anweisung kann die Schleife beendet werden, bevor alle Elemente durchlaufen wurden:

zahlen = [1, 2, 3, 4]
summe = 0

for val in zahlen:
    summe = summe+val
    if summe == 6:
        break
print("Die Summe beträgt", summe)
>>> %Run -c $EDITOR_CONTENT
Die Summe beträgt 6

Die continue-Anweisung

Mit der continue-Anweisung kann die aktuelle Iteration der Schleife beendet und mit der nächsten fortgefahren werden:

zahlen = [1, 2, 3, 4]

for val in zahlen:
    if val == 3:
        continue
    print(val)
>>> %Run -c $EDITOR_CONTENT
1
2
4

Die range()-Funktion

Mit der range()-Funktion kann eine Zahlenreihe erzeugt werden. range(6) erzeugt Zahlen von 0 bis 5 (6 Zahlen insgesamt).

Man kann auch Start, Ende und Schrittgröße definieren: range(start, stop, step_size). Wenn nicht angegeben, wird die Schrittgröße standardmäßig auf 1 gesetzt.

In gewissem Sinne ist das von range zurückgegebene Objekt „faul“, da es bei seiner Erstellung nicht jede darin enthaltene Zahl generiert. Es ist jedoch kein Iterator, da es die Operationen in, len und __getitem__ unterstützt.

Diese Funktion speichert nicht alle Werte im Speicher; das wäre ineffizient. Sie speichert nur Start, Ende und Schrittgröße und generiert die nächste Zahl bei Bedarf.

Um diese Funktion zu zwingen, alle Elemente auszugeben, kann man die list()-Funktion verwenden.

print(range(6))

print(list(range(6)))

print(list(range(2, 6)))

print(list(range(2, 10, 2)))
>>> %Run -c $EDITOR_CONTENT
range(0, 6)
[0, 1, 2, 3, 4, 5]
[2, 3, 4, 5]
[2, 4, 6, 8]

Man kann range() in einer for-Schleife verwenden, um über eine Zahlenreihe zu iterieren. Das kann in Kombination mit der len()-Funktion genutzt werden, um mit dem Index über eine Sequenz zu iterieren.

früchte = ['Birne', 'Apfel', 'Traube']

for i in range(len(früchte)):
    print("Ich mag", früchte[i])
>>> %Run -c $EDITOR_CONTENT
Ich mag Birne
Ich mag Apfel
Ich mag Traube

Else in For-Schleife

Die for-Schleife kann auch einen optionalen else-Block haben. Wenn die Elemente der für die Schleife verwendeten Sequenz aufgebraucht sind, wird der else-Teil ausgeführt.

Das break-Schlüsselwort kann verwendet werden, um die for-Schleife zu beenden. In diesem Fall wird der else-Teil ignoriert.

Daher wird der else-Teil der for-Schleife ausgeführt, wenn kein Abbruch erfolgt.

for val in range(5):
    print(val)
else:
    print("Fertig")
>>> %Run -c $EDITOR_CONTENT
0
1
2
3
4
Fertig

Der Else-Block wird NICHT ausgeführt, wenn die Schleife durch eine break-Anweisung gestoppt wird.

for val in range(5):
    if val == 2: break
    print(val)
else:
    print("Fertig")
>>> %Run -c $EDITOR_CONTENT
0
1