Routineaufgaben mit Python automatisieren. Al Sweigart

Routineaufgaben mit Python automatisieren - Al Sweigart


Скачать книгу

      8

      4

      1

      Die Ausführung dieses Programms können Sie sich auf https://autbor.com/printrandom/ ansehen. Der Aufruf der Funktion random.randint() wird zu einem zufälligen Integerwert ausgewertet, der zwischen den beiden übergebenen Integern liegt. Da randint() zum Modul random gehört, müssen Sie dem Funktionsnamen random. voranstellen, um Python anzuweisen, in diesem Modul nach der Funktion zu suchen.

      Das folgende Beispiel zeigt eine import-Anweisung, die gleich vier verschiedene Module importiert:

      import random, sys, os, math

      Danach können Sie alle Funktionen dieser vier Module nutzen. Mehr darüber erfahren Sie weiter hinten in diesem Buch.

       From-import-Anweisungen

      Eine alternative Form der import-Anweisung besteht aus dem Schlüsselwort from gefolgt vom Modulnamen, dem Schlüsselwort import und einem Sternchen, also z. B. from random import *.

      Bei dieser Form müssen Sie Aufrufen der Funktionen aus random das Präfix random. nicht mehr voranstellen. Allerdings ist der Code leichter verständlich, wenn Sie den vollständigen Namen verwenden, weshalb es besser ist, sich an die übliche Form der import-Anweisung zu halten.

       Programme mit sys.exit() vorzeitig beenden

      Der letzte Aspekt der Flusssteuerung, mit dem wir uns hier beschäftigen, ist die Beendigung eines Programms. Wenn die Ausführung am Ende der Anweisungen angelangt ist, wird das Programm automatisch beendet, allerdings können Sie durch einen Aufruf der Funktion sys.exit() auch dafür sorgen, dass das Programm vor der letzten Anweisung beendet wird. Da diese Funktion zum Modul sys gehört, müssen Sie dieses zunächst in Ihr Programm importieren, bevor Sie die Funktion nutzen können.

      Geben Sie in einem neuen Dateieditorfenster den folgenden Code ein und speichern Sie ihn als exitExample.py:

      import sys

      while True:

      print('Type exit to exit.')

      response = input()

      if response == 'exit':

      sys.exit()

      print('You typed ' + response + '.')

      Führen Sie das Programm in IDLE aus. Es enthält eine Endlosschleife ohne break-Anweisung. Es wird nur beendet, wenn die Ausführung den Aufruf von sys.exit() erreicht. Wenn response gleich exit ist, wird die Zeile mit sys.exit() ausgeführt. Da die Variable response aber durch die Funktion input() festgelegt wird, muss der Benutzer exit eingeben, um das Programm zu beenden.

       Ein kurzes Programm: Zahlen raten

      Die Beispiele, die ich Ihnen bis jetzt gezeigt habe, mögen vielleicht ganz nützlich sein, um einfache Prinzipien zu veranschaulichen, aber im Folgenden wollen wir uns ansehen, wie wir das Gelernte in einem Programm anwenden, das auch wirklich etwas tut. Dazu schreiben wir ein einfaches Zahlenratespiel. Wenn Sie das Programm ausführen, erhalten Sie eine Ausgabe wie die folgende:

      I am thinking of a number between 1 and 20.

      Take a guess.

       10

      Your guess is too low.

      Take a guess.

       15

      Your guess is too low.

      Take a guess.

       17

      Your guess is too high.

      Take a guess.

       16

      Good job! You guessed my number in 4 guesses!

      Geben Sie den folgenden Quellcode in den Dateieditor ein und speichern Sie ihn als guessTheNumber.py:

      # Dies ist ein Zahlenratespiel.

      import random

      secretNumber = random.randint(1, 20)

      print('I am thinking of a number between 1 and 20.')

      # Fordert den Spieler sechsmal zum Raten der Zahl auf.

      for guessesTaken in range(1, 7):

      print('Take a guess.')

      guess = int(input())

      if guess < secretNumber:

      print('Your guess is too low.')

      elif guess > secretNumber:

      print('Your guess is too high.')

      else:

      break # Diese Bedingung tritt ein, wenn die Zahl erraten wurde!

      if guess == secretNumber:

      print('Good job! You guessed my number in ' + str(guessesTaken) + '

      guesses!')

      else:

      print('Nope. The number I was thinking of was ' + str(secretNumber))

      Die Ausführung dieses Programms können Sie sich auf https://autbor.com/guessthenumber/ ansehen. Betrachten wir den Code nun Zeile für Zeile. Als Erstes haben wir Folgendes:

      # Dies ist ein Zahlenratespiel.

      import random

      secretNumber = random.randint(1, 20)

      Der Kommentar am Anfang des Codes erklärt zunächst einmal, was das Programm macht. Danach importiert das Programm das Modul random, damit es mit der Funktion random.randint() die zu ratende Zahl generieren kann. Der Rückgabewert, ein zufälliger Integer zwischen 1 und 20, wird in der Variablen secretNumber gespeichert.

      print('I am thinking of a number between 1 and 20.')

      # Fordert den Spieler sechsmal zum Raten der Zahl auf.

      for guessesTaken in range(1, 7):

      print('Take a guess.')

      guess = int(input())

      Das Programm teilt dem Spieler nun mit, dass es sich eine Geheimzahl ausgedacht hat und den Spieler sechsmal raten lässt. Der Code, der den Spieler einen Rateversuch eingeben lässt und die Zahl anschließend überprüft, steht in einer for-Schleife, die maximal sechsmal ausgeführt wird. In der Schleife wird als Erstes die Eingabe des Spielers entgegengenommen. Da input() einen String zurückgibt, wird dieser Rückgabewert sofort an die Funktion int() übergeben, die ihn in einen Integerwert umwandelt. Dieser wird schließlich in der Variablen guess abgelegt.

      if guess < secretNumber:

      print('Your guess is too low.')

      elif guess > secretNumber:

      print('Your guess is too high.')

      Diese wenigen Codezeilen prüfen, ob die geratene Zahl größer oder kleiner als die Geheimzahl ist. In beiden Fällen wird auf dem Bildschirm ein entsprechender Hinweis ausgegeben.

      else:

      break # Diese Bedingung tritt ein, wenn die Zahl erraten wurde!

      Ist die geratene Zahl weder kleiner noch größer als die Geheimzahl, so muss sie gleich dieser Zahl sein. In diesem Fall wird


Скачать книгу