Routineaufgaben mit Python automatisieren. Al Sweigart
Чтение книги онлайн.

Читать онлайн книгу Routineaufgaben mit Python automatisieren - Al Sweigart страница 33

Название: 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 image

      for num in range(101): image

      total = total + num image

      print(total) image

      Das Ergebnis lautet 5050. Zu Anfang des Programms wird die Variable total auf 0 gesetzt (image). Die for-Schleife (image) führt dann 100 Mal total = total + num (image) aus. Wenn die Schleife alle 100 Iterationen durchlaufen hat, sind alle ganzen Zahlen von 1 bis 100 zu total addiert worden. Jetzt wird der Wert von total auf dem Bildschirm ausgegeben (image). Selbst auf dem langsamsten Computer nimmt dieses Programm weniger als eine Sekunde in Anspruch.

      (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.

СКАЧАТЬ