Routineaufgaben mit Python automatisieren. Al Sweigart
Читать онлайн книгу.Wahl des Spielers an:
if playerMove == 'r':
print('ROCK versus...')
elif playerMove == 'p':
print('PAPER versus...')
elif playerMove == 's':
print('SCISSORS versus...')
Damit wird die Auswahl des Spielers angezeigt.
# Zeigt die Wahl des Computers an:
randomNumber = random.randint(1, 3)
if randomNumber == 1:
computerMove = 'r'
print('ROCK')
elif randomNumber == 2:
computerMove = 'p'
print('PAPER')
elif randomNumber == 3:
computerMove = 's'
print('SCISSORS')
Danach wird der Zug des Computers zufällig ausgewählt. Allerdings gibt random.randint() nur Zahlen aus. Daher wird der zurückgegebene Integerwert 1, 2 oder 3 in der Variablen randomNumber abgelegt und dann auf der Grundlage dieses Wertes der String 'r', 'p' oder 's' in computerMove gespeichert. Anschließend wird die Wahl des Computers angezeigt.
# Zeigt Sieg/Niederlage/Unentschieden an und speichert das Ergebnis:
if playerMove == computerMove:
print('It is a tie!')
ties = ties + 1
elif playerMove == 'r' and computerMove == 's':
print('You win!')
wins = wins + 1
elif playerMove == 'p' and computerMove == 'r':
print('You win!')
wins = wins + 1
elif playerMove == 's' and computerMove == 'p':
print('You win!')
wins = wins + 1
elif playerMove == 'r' and computerMove == 'p':
print('You lose!')
losses = losses + 1
elif playerMove == 'p' and computerMove == 's':
print('You lose!')
losses = losses + 1
elif playerMove == 's' and computerMove == 'r':
print('You lose!')
losses = losses + 1
Abschließend vergleicht das Programm die Strings in playerMove und computerMove und zeigt das Ergebnis auf dem Bildschirm an. Außerdem erhöht es je nach Ausgang den Wert der Variablen wins, losses oder ties. Wenn die Ausführung am Ende angekommen ist, springt sie wieder zurück zum Anfang der Hauptschleife, sodass eine neue Runde beginnen kann.
Zusammenfassung
Mithilfe von Ausdrücken, die zu True oder False ausgewertet werden (sogenannten Bedingungen), können Sie Programme schreiben, die entscheiden, welcher Code ausgeführt und welcher übersprungen werden soll. Es ist auch möglich, Code in einer Schleife wiederholt auszuführen, während eine bestimmte Bedingung True ist. Wenn Sie eine Schleife abbrechen oder innerhalb einer Schleife zum Anfang zurückkehren müssen, können Sie die Anweisung break bzw. continue nutzen.
Diese Flusssteuerungsanweisungen erlauben es Ihnen, viel intelligentere Programme zu schreiben. Es gibt jedoch noch eine andere Form von Flusssteuerung, indem Sie eigene Funktionen schreiben. Sie bilden das Thema des nächsten Kapitels.
Wiederholungsfragen
1 Welche beiden Werte gibt es für den booleschen Datentyp? Wie werden sie geschrieben?
2 Wie heißen die drei booleschen Operatoren?
3 Schreiben Sie die Wahrheitswertetafeln aller booleschen Operatoren auf (also die Tabellen aller möglichen Kombinationen der booleschen Werte für diese Operatoren und das jeweilige Ergebnis).
4 Wie lauten die Ergebnisse der folgenden Ausdrücke?(5 > 4) and (3 == 5)not (5 > 4)(5 > 4) or (3 == 5)not ((5 > 4) or (3 == 5))(True and True) and (True == False)(not False) or (not True)
5 Wie heißen die sechs Vergleichsoperatoren?
6 Was ist der Unterschied zwischen dem Gleichheits- und dem Zuweisungsoperator?
7 Was ist eine Bedingung? Wann wird sie verwendet?
8 Bezeichnen Sie die drei Blöcke in dem folgenden Code:spam = 0if spam == 10:print('eggs')if spam > 5:print('bacon')else:print('ham')print('spam')print('spam')
9 Schreiben Sie Code, der Hello ausgibt, wenn in spam der Wert 1 gespeichert ist, Howdy, wenn spam den Wert 2 hat, und Greetings! bei jedem anderen Wert von spam.
10 Welche Tastenkombination können Sie drücken, wenn ein Programm in einer Endlosschleife gefangen ist?
11 Was ist der Unterschied zwischen break und continue?
12 Was ist der Unterschied zwischen range(10), range(0, 10) und range(0, 10, 1) in einer for-Schleife?
13 Schreiben Sie ein kurzes Programm, das die Zahlen von 1 bis 10 mithilfe einer for-Schleife ausgibt. Schreiben Sie dann ein Programm, das die gleiche Aufgabe mithilfe einer while-Schleife erfüllt.
14 Nehmen Sie an, Sie haben ein Modul namens spam, in dem sich die Funktion bacon() befindet. Wie rufen Sie bacon() auf, nachdem Sie spam importiert haben?
Zusatzpunkt: Schlagen Sie die Funktionen round() und abs() im Internet nach und finden Sie heraus, was sie tun. Experimentieren Sie in der interaktiven Shell damit.
3
Funktionen
Um besser zu verstehen, wie Funktionen aufgebaut sind und was sie tun, wollen wir eine erstellen. Geben Sie das folgende Programm im Dateieditor ein und speichern Sie es als helloFunc.py:
def hello():
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
hello()
hello()
hello()
Die Ausführung dieses Programms können Sie sich auf https://autbor.com/hellofunc/ ansehen. Die erste Zeile enthält die Anweisung def (