Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 80

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 die for-Schleife abgebrochen.

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))

Nach der for-Schleife prüft die vorstehende if...else-Anweisung, ob der Spieler die Zahl erraten hat oder nicht, und gibt eine entsprechende Meldung auf dem Bildschirm aus. In beiden Fällen zeigt das Programm eine Variable mit einem Integerwert an (guessesTaken bzw. secretNumber). Da diese Integerwerte mit Strings verkettet werden müssen, werden die Variablen an die Funktion str() übergeben, die die Stringversionen der Integer zurückgibt. Jetzt können die Strings mit dem Operator + verkettet und schließlich an print() übergeben werden.

Routineaufgaben mit Python automatisieren

Подняться наверх