Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
Joe
Hello, Joe. What is the password? (It is a fish.)
Mary
Who are you?
Joe
Hello, Joe. What is the password? (It is a fish.)
swordfish
Access granted.
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/hellojoe/ ansehen.
For-Schleifen und die Funktion range()
While-Schleifen werden durchlaufen, solange die Bedingung True ist. Was aber machen Sie, wenn Sie einen Codeblock eine bestimmte Anzahl von Malen ausführen wollen? Das können Sie mit der Anweisung for und der Funktion range() erreichen.
Eine for-Anweisung hat die Form for i in range(5) und weist die folgenden Bestandteile auf:
Das Schlüsselwort for
Einen Variablennamen
Das Schlüsselwort in
Einen Aufruf der Methode range(), wobei bis zu drei Integer übergeben werden können
Einen Doppelpunkt
Einen eingerückten Codeblock (die for-Klausel), der in der nächsten Zeile beginnt
Um uns eine for-Schleife in Aktion anzusehen, schreiben wir das Programm five-Times.py:
print('My name is')
for i in range(5):
print('Jimmy Five Times (' + str(i) + ')')
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/fivetimesfor/ ansehen. Der Code in der for-Klausel wird fünfmal ausgeführt. Beim ersten Mal hat die Variable i den Wert 0. Der Aufruf von print() in der Klausel gibt daher Jimmy Five Times (0) aus. Nach einem kompletten Durchlauf durch den Code in der Klausel wird die Ausführung wieder am Anfang der Schleife fortgesetzt und i um 1 erhöht. Die Funktion range(5) ruft fünf Iterationen durch die Klausel hervor, da i nacheinander auf 0, 1, 2, 3 und 4 gesetzt wird. Die Variable wird erhöht, bis die nächste Erhöhung den an range() übergebenen Wert erreichen würde. Das Flussdiagramm für fiveTimes.py sehen Sie in Abb. 2–13.
Abb. 2–13 Das Flussdiagramm für fiveTimes.py
Wenn Sie das Programm ausführen, gibt es fünfmal Jimmy Five Times jeweils gefolgt von dem Wert von i aus, bevor es die Schleife verlässt.
My name is
Jimmy Five Times (0)
Jimmy Five Times (1)
Jimmy Five Times (2)
Jimmy Five Times (3)
Jimmy Five Times (4)
Hinweis
Auch in for-Schleifen können Sie die Anweisungen break und continue verwenden. Dabei sorgt eine continue-Anweisung dafür, dass das Programm mit dem nächsten Wert des Schleifenzählers fortfährt, als wäre die Ausführung am Ende der Schleife angekommen und zum Start zurückgesprungen. Break- und continue-Anweisungen lassen sich ausschließlich in while- und for-Schleifen einsetzen. Wenn Sie versuchen, sie an anderen Stellen zu verwenden, gibt Python eine Fehlermeldung aus.
Unser nächstes Beispiel für eine for-Schleife geht auf eine Geschichte über den Mathematiker Carl Friedrich Gauß zurück. Als er ein kleiner Junge war, wollte sein Lehrer die Klasse beschäftigt halten und wies die Schüler daher an, alle Zahlen von 1 bis 100 zu addieren. Der kleine Gauß kam aber auf einen Trick, mit dem er das Ergebnis in wenigen Sekunden berechnen konnte. In Python brauchen Sie diesen Trick gar nicht, sondern können die Arbeit einfach in einer for-Schleife erledigen lassen:
total = 0
for num in range(101):
total = total + num
print(total)
Das Ergebnis lautet 5050. Zu Anfang des Programms wird die Variable total auf 0 gesetzt (
(Der kleine Gauß hatte übrigens festgestellt, dass die Zahlen von 1 bis 100 aus 50 Paaren mit der Summe 101 bestanden: 1 + 100, 2 + 99, 3 + 98 usw. bis 50 + 51. Daher musste er nur noch 101 × 50 = 5050 rechnen. Schlaues Bürschchen!)
Eine gleichwertige while-Schleife
Es ist möglich, eine while-Schleife zu konstruieren, die genau das Gleiche macht wie eine for-Schleife. Die for-Schleife stellt nur eine knappere Schreibweise dar. Die folgende Variante von fiveTimes.py verwendet eine while-statt der for-Schleife:
print('My name is')
i = 0
while i < 5:
print('Jimmy Five Times (' + str(i) + ')')
i = i + 1
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/fivetimeswhile/ ansehen. Wenn Sie es ausprobieren, erhalten Sie die gleiche Ausgabe wie bei dem Programm fiveTimes.py mit der for-Schleife.
СКАЧАТЬ