In der Programmierung sind for-Schleifen unglaublich vielseitige Werkzeuge zum Wiederholen eines Codeabschnitts. For-Schleifen können mithilfe eines Bereichs eine festgelegte Anzahl von Malen durchlaufen, sie können Klauseln/Bedingungen haben, die die Schleife beenden, und wir können sie verwenden, um Elemente in einem Wörterbuch, einer Liste oder einem Tupel zu durchlaufen.
In dieser Anleitung zeigen wir Ihnen, wie Sie mit Python mit For-Schleifen beginnen. Die gleiche Syntax funktioniert auch mit MicroPython und CircuitPython auf Boards wie dem Raspberry Pi Pico.
Um die Verwendung von for-Schleifen in Python zu demonstrieren, verwenden wir Thonny, einen kostenlosen, benutzerfreundlichen und plattformübergreifenden Python-Editor.
1. Gehen Sie in einem Browser zur Thonny-Website und Laden Sie die Veröffentlichung herunter für Ihr System.
2. Alternativ können Sie die offizielle Python-Version installieren mit dieser Anleitung. Beachten Sie, dass diese Anleitung die Installation unter Windows 10 und 11 behandelt.
Verwenden eines Bereichs mit Python-For-Schleifen
Die einfachste Verwendung einer for-Schleife in Python besteht darin, über einen Bereich zu iterieren, wodurch im Wesentlichen eine Schleife erstellt wird, die nur eine festgelegte Anzahl von Malen iteriert. Obwohl „Bereich“ nicht unbedingt Teil der Syntax einer for-Schleife ist, handelt es sich tatsächlich um eine integrierte Python-Funktion, die eine Sequenz für ein bestimmtes Muster zurückgibt. Dies ist die einfachste Möglichkeit, die Funktionsweise einer for-Schleife zu demonstrieren.
1. Erstellen Sie eine for-Schleife und legen Sie den Bereich auf 10 fest.Dadurch wird der Wert von x auf einen ganzzahligen Wert gesetzt, der bei 0 beginnt und bei 9 endet. Die Schleife wird wiederholt, bis sie die zehnte Schleife erreicht, und endet dann.
for i in range(10):
2. Geben Sie den aktuellen Wert von i als Teil eines Satzes aus. Hier verwenden wir die String-Formatierungsmethode von Python, um die Schleifennummer bei jedem Schleifendurchlauf einzufügen.
print("This is loop: :n".format(i))
3. Speichern Sie den Code als for_loop_range.py und klicken Sie zum Starten auf „Ausführen“. Sie sollten diese Ausgabe sehen.
This is loop: 0
This is loop: 1
This is loop: 2
This is loop: 3
This is loop: 4
This is loop: 5
This is loop: 6
This is loop: 7
This is loop: 8
This is loop: 9
Vollständige Codeauflistung: For-Schleife mit einem Bereich
for i in range(10):
print("This is loop: :d".format(i))
Um besser zu veranschaulichen, wie wir eine for-Schleife verwenden können, verwenden wir eine for-Schleife mit einem Bereich, um die fünf wichtigsten Schlagzeilen zusammen mit der entsprechenden URL aus dem RSS-Feed von BBC News abzurufen.
1. Feedparser mit pip installieren an einer Eingabeaufforderung. Feedparser ist ein RSS-Parsing-Tool, mit dem wir den RSS-Feed lesen und in ein Python-Wörterbuch konvertieren.
pip install feedparser
2. Erstellen Sie in Thonny eine neue leere Python-Datei Und Feedparser importieren.
import feedparser
3. Erstellen Sie ein Objekt, einen Newsfeed, und da drin Speichern Sie den analysierten BBC-Newsfeed.
newsfeed = feedparser.parse("http://feeds.bbci.co.uk/news/rss.xml")
4. Verwenden Sie eine for-Schleife mit einem Bereich von fünf.
for i in range(5):
5. Drucken Sie die Schlagzeilen (Titel) und die URL (Link) der fünf Top-Storys aus. Hier greifen wir auf das Newsfeed-Objekt zu, bei dem es sich um ein Wörterbuch (Array) handelt, das viele weitere Wörterbücher und Listen enthält. Mithilfe der Schlüssel (Einträge, Titel und Link) können wir die Werte abrufen, die sie speichern. Der Wert von [i] inkrementiert, bis 5 erreicht ist, dann endet die Schleife. Wir haben Anleitungen zu Wörterbüchern und Listen, die weiter ins Detail gehen.
print(newsfeed['entries'][i]['title'])
print(newsfeed['entries'][i]['link'])
6. Speichern Sie den Code als news_for_loop.py und klicken Sie auf Ausführen. Sie sollten die fünf wichtigsten Schlagzeilen sehen.
import feedparser
newsfeed = feedparser.parse("http://feeds.bbci.co.uk/news/rss.xml")
for i in range(5):
print(newsfeed['entries'][i]['title'])
print(newsfeed['entries'][i]['link'])
For-Schleifen mit frühem Ende
Bereiche können auch einen „frühen Ausstieg“ aufweisen. Dabei wird eine bedingte Anweisung verwendet, die den Wert der Schleife prüft (in unserem Fall wird er in i gespeichert) und wenn er mit dem Wert übereinstimmt, bricht der Code ab und wird beendet.
Zu Beginn werden wir den Code aus dem ersten Beispiel wiederverwenden.
1. Fügen Sie einen bedingten Test hinzu, der prüft, ob der Wert von i mit 4 übereinstimmt. In Python ist == ein Operator, der prüft, ob ein Wert mit einem anderen übereinstimmt.
if i == 4:
2. Geben Sie einen Satz aus, um den Benutzer darüber zu informieren, dass die Schleife beendet wird. Dieser Teil des Codes wird erst aktiviert, wenn „i“ den Wert 4 enthält.
print("This loop sequence terminates at loop :n".format(i))
3. Durchbrechen Sie die Schleife und erzwingen Sie das Anhalten des Codes.
break
4. Speichern Sie den Code und führen Sie ihn aus. Sie sollten diese Ausgabe sehen.
This is loop: 0
This is loop: 1
This is loop: 2
This is loop: 3
This is loop: 4
This loop sequence terminates at loop 4
Vollständige Codeauflistung: For-Schleife mit vorzeitigem Beenden
for i in range(10):
print("This is loop: :n".format(i))
if i == 4:
print("This loop sequence terminates at loop :n".format(i))
break
Verschachtelte For-Schleifen
Wir können mehrere for-Schleifen gleichzeitig ausführen lassen. Beispielsweise können wir eine for-Schleife in einer anderen verschachteln. In diesem Beispiel verwenden wir den Code aus dem ersten Beispiel wieder.
for i in range(10):
print("This is loop: :n".format(i))
1. Fügen Sie eine verschachtelte for-Schleife hinzu, die zehnmal wiederholt wird. Stellen Sie sicher, dass sich der Variablenname vom Namen der Hauptschleife unterscheidet, da es sonst zu Konflikten zwischen den beiden kommt.
for j in range(10):
2. Fügen Sie eine print-Anweisung hinzu, um den Benutzer darüber zu informieren, dass es sich um die verschachtelte for-Schleife handelt.
print("This is nested loop: :n".format(i))
3. Verwenden Sie eine Unterbrechung, um die verschachtelte for-Schleife zu verlassen. Wenn wir dies nicht tun, wird die verschachtelte for-Schleife jedes Mal wiederholt, wenn die Hauptschleife iteriert.
break
4. Speichern Sie den Code und führen Sie ihn aus. Sie sollten diese Ausgabe sehen.
This is loop: 0
This is nested loop: 0
This is loop: 1
This is nested loop: 1
This is loop: 2
This is nested loop: 2
This is loop: 3
This is nested loop: 3
This is loop: 4
This is nested loop: 4
This is loop: 5
This is nested loop: 5
This is loop: 6
This is nested loop: 6
This is loop: 7
This is nested loop: 7
This is loop: 8
This is nested loop: 8
This is loop: 9
This is nested loop: 9
Vollständige Codeauflistung: Verschachtelte For-Schleifen
for i in range(10):
print("This is loop: :n".format(i))
for j in range(10):
print("This is nested loop: :n".format(i))
break
Iterieren mit For-Schleifen
Das Durchlaufen von Objekten in einer Liste, einem Wörterbuch oder einem Tupel ist nützlich, wenn wir Daten aus diesen Objekten verwenden möchten. In diesem Beispiel verwenden wir den Code unseres RSS-Feed-Readers wieder, um eine einfache Web-App zu erstellen. Eine Ranged-for-Schleife greift auf die Nachrichtenschlagzeilen aus dem Objekt zu, teilt die Schlagzeilen und ihre URLs auf und speichert sie dann in einem Python-Wörterbuchobjekt. Anschließend verwenden wir das Wörterbuch als Quelle, um eine HTML-Seite in einem Browser zu generieren.
1. Installieren Sie PyWebIO mit pip an der Eingabeaufforderung,. PyWebIO ist ein Mittel zum Erstellen von Ein- und Ausgaben rund um eine Browsersitzung.
pip install pywebio
2. Erstellen Sie in Thonny eine neue leere Python-Datei, importieren Sie den Feedparser und importieren Sie drei PyWebIO-Klassen. PyWebIO hat viele verschiedene Klassen und Funktionen, aber wir sind daran interessiert, einen Server zu erstellen, Informationen an einen Browser auszugeben und die Sitzung zu steuern.
import feedparser
from pywebio import start_server
from pywebio.output import *
from pywebio.session import *
3. Erstellen Sie ein Objekt, einen Newsfeed, und da drin Speichern Sie den analysierten BBC-Newsfeed. Dies kann ein beliebiger RSS-Feed Ihrer Wahl sein.
newsfeed = feedparser.parse("http://feeds.bbci.co.uk/news/rss.xml")
4. Erstellen Sie ein leeres Wörterbuch mit dem Namen news_stories. Wörterbücher sind Python-Objekte, die Daten mithilfe eines Schlüssel-Wert-Systems speichern. Indem wir ein Wörterbuch aufrufen und auf einen Schlüssel verweisen, können wir den ihm zugeordneten Wert ermitteln.
news_stories =
5. Erfassen Sie mithilfe einer for-Schleife mit einem Bereich die ersten fünf Nachrichten und speichern Sie sie im Wörterbuch news_stories. Der Titel (Überschrift) ist der Schlüssel und die URL ist der Wert.
for i in range(5):
news_stories.update(newsfeed['entries'][i]['title']:newsfeed['entries'][i]['link'])
6. Erstellen Sie eine Funktion namens main. Diese Funktion übernimmt die Erstellung des bereitzustellenden Webinhalts.
def main():
7. Legen Sie den Seitentitel fest. Dies ist in der Registerkarte/Titelleiste des Webbrowsers zu sehen.
set_env(title="Python For Loops RSS Example")
8. Verwenden Sie eine for-Schleife, um alle im news_stories-Wörterbuch gespeicherten Schlüssel (k) und Werte (v) zu durchlaufen. Die for-Schleife endet, sobald alle Schlüssel und Werte abgerufen wurden. Sie benötigt keinen Bereich.
for k,v in news_stories.items():
9. Platzieren Sie den Überschriftentext auf der Seite. Die put_text-Funktion von PyWebIO platziert Rohtext auf einer Webseite, und wir übergeben der Funktion den Schlüsselwert, der die Überschrift ist.
put_text(k)
10. Platzieren Sie die URL unter der Überschrift. Mit put_link generieren wir einen HTML-Hyperlink mit dem Text „Hier klicken“. Die URL wird aus dem in v gespeicherten Wert erstellt.
put_link('Click here',v)
11. Starten Sie außerhalb der for-Schleife und der Funktion den Server. Rufen Sie die Hauptfunktion auf, setzen Sie den Port auf 8080 und debuggen Sie auf True. Es empfiehlt sich, den Port auf einen nicht verwendeten Wert zu setzen, normalerweise ist 8080 gültig. Ändern Sie diesen ggf. auf einen anderen Wert. Das Setzen von „debug“ auf „True“ ist nützlich, da dadurch eine Ausgabe in der Python-Shell und in der Browsersitzung bereitgestellt wird.
start_server(main, port=8080, debug=True)
12. Speichern Sie den Code als for_loop_news_dict.py und klicken Sie auf Ausführen. Die Python-Shell zeigt die URL der generierten Seite an.
13. Klicken Sie auf die URL, um sie in Ihrem Standardbrowser zu öffnen. Die URL kann auch von einem anderen Gerät im Netzwerk angezeigt werden.
Vollständige Codeauflistung: Iterieren mit For-Schleifen
import feedparser
import time
from pywebio import start_server
from pywebio.output import *
from pywebio.session import *
newsfeed = feedparser.parse("http://feeds.bbci.co.uk/news/rss.xml")
news_stories =
for i in range(5):
news_stories.update(newsfeed['entries'][i]['title']:newsfeed['entries'][i]['link'])
def main():
set_env(title="Python For Loops RSS Example")
for k,v in news_stories.items():
put_text(k)
put_link('Click here',v)
start_server(main, port=8080, debug=True)