Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
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 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, СКАЧАТЬ