Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 68
Break-Anweisungen
ОглавлениеEs gibt eine Abkürzung, um vorzeitig aus einer while-Schleife auszubrechen. Wenn das Programm bei der Ausführung eine break-Anweisung erreicht, verlässt es die while-Klausel sofort. Im Code besteht eine break-Anweisung lediglich aus dem Schlüsselwort break.
Ziemlich einfach, oder? Das folgende Programm macht das Gleiche wie das vorherige, enthält zusätzlich aber eine break-Anweisung, um aus der Schleife ausbrechen zu können. Geben Sie den folgenden Code ein und speichern Sie die Datei als yourName2.py:
while True:
print('Please type your name.')
name = input()
if name == 'your name':
break
print('Thank you!')
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/yourname2/ ansehen. Die erste Zeile () ruft eine Endlosschleife hervor – eine while-Schleife, deren Bedingung stets True ist (denn schließlich wird der Ausdruck True immer zu dem Wert True ausgewertet). Tritt das Programm erst einmal in die Schleife ein, kann es sie erst dann verlassen, wenn eine break-Anweisung ausgeführt wird. (Eine Endlosschleife, die niemals verlassen wird, ist ein häufig auftretender Bug.)
Wie zuvor fordert das Programm den Benutzer dazu auf, your name einzugeben (). Diesmal aber wird innerhalb der while-Schleife eine if-Anweisung ausgeführt (), um zu prüfen, ob name gleich 'your name' ist. Ist diese Bedingung erfüllt, so wird die break-Anweisung ausgeführt (), sodass das Programm die Schleife verlässt und zu print('Thank you!') übergeht (). Anderenfalls wird die if-Klausel mit der break-Anweisung übersprungen, sodass die Programmausführung das Ende der while-Schleife erreicht. Dadurch springt sie wieder zum Anfang der while-Anweisung, wo die Bedingung überprüft wird (). Da es sich bei dieser Bedingung einfach um den booleschen Wert True handelt, beginnt die Schleife erneut, sodass der Benutzer wieder aufgefordert wird, your name einzugeben. Das Flussdiagramm für dieses Programm sehen Sie in Abb. 2–11.
Führen Sie yourName2.py aus und geben Sie den gleichen Text ein wie bei yourName.py. Die neue Version des Programms reagiert auf die gleiche Weise wie die ursprüngliche.
Abb. 2–11Das Flussdiagramm für das Programm yourName2.py mit einer Endlosschleife. Der mit X markierte Pfad wird nie erreicht, da die Schleifenbedingung stets True ist.