Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
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.
Continue-Anweisungen
Ebenso wie break- werden auch continue-Anweisungen innerhalb von Schleifen verwendet. Wird bei der Ausführung eine solche Anweisung erreicht, so erfolgt ein Rücksprung zum Anfang der Schleife, wo die Schleifenbedingung erneut ausgewertet wird. (Dies geschieht auch, wenn die Ausführung am Ende der Schleife ankommt.)
Gefangen in einer Endlosschleife?
Wenn Sie ein Programm ausführen und es aufgrund eines Bugs in einer Endlosschleife hängen bleibt, drücken Sie
while True:
print('Hello, world!')
Wenn Sie dieses Programm ausführen, gibt es Hello, world! auf dem Bildschirm aus und will nicht mehr damit aufhören, da die Bedingung der while-Anweisung stets True ist. Die Tastenkombination
Im Folgenden verwenden wir continue für ein Programm, das Sie nach Ihrem Namen und Ihrem Passwort fragt. Geben Sie den folgenden Code in ein neues Dateieditorfenster ein und speichern Sie das Programm als swordfish.py:
while True:
print('Who are you?')
name = input()
if name != 'Joe':
continue
print('Hello, Joe. What is the password? (It is a fish.)')
password = input()
if password == 'swordfish':
break
print('Access granted.')
Wenn der Benutzer einen anderen Namen als Joe eingibt (
Abb. 2–12Das Flussdiagramm für das Programm swordfish.py. Der mit X markierte Pfad wird nie erreicht, da die Schleifenbedingung stets True ist.
»Truthy«- und »Falsey«-Werte
Es gibt auch einige Werte anderer Datentypen, die in Bedingungen als gleichwertig mit True und False angesehen werden. In Bedingungen gelten 0, 0.0 und '' (ein leerer String) als False, alle anderen Werte dagegen als True. Betrachten Sie beispielsweise das folgende Programm:
name = ''
while not name:
print('Enter your name:')
name = input()
print('How many guests will you have?')
numOfGuests = int(input())
if numOfGuests:
print('Be sure to have enough room for all your guests.')
print('Done')
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/howmanyguests/ ansehen. Wenn der Benutzer einen leeren String für name eingibt, dann ist die Bedingung der while-Anweisung True (
Sie könnten auch not name != '' statt not name und numOfGuests != 0 statt numOfGuests schreiben, aber mit den sogenannten Truthy- und Falsey-Werten wird der Code übersichtlicher.
Führen Sie das Programm swordfish.py aus und machen Sie einige Eingaben. Erst wenn Sie sich als Joe vorstellen, werden Sie nach dem Passwort gefragt. Nachdem Sie das richtige Passwort eingegeben haben, endet das Programm.
Who are you?
I'm fine, thanks. Who are you?
Who СКАЧАТЬ