In dieser Übunge erstellen wir ein kleines Python-Programm, das unsinnige Sätze zusammenbaut.
Unser Programm soll aus drei verschiedenen Wortgruppen (Subjekt, Verb, Objekt) willkürlich Sätze zusammenstellen. Es wählt zufällig je ein Wort aus einer Gruppe aus und dabei können natürlich auch lustige und unsinnige Sätze herauskommen.
Ein möglicher Ablauf könnte dann im Shell-Fenster so aussehen:
Unsinnige Sätze
===============
Drücke einfach ENTER, um einen neuen Satz zu erzeugen.
Oder "n" und dann ENTER, um das Programm zu beenden.
Die Katze träumt im Feld.
Die Katze springt im Meer.
Das Känguru schwimmt im Zirkus.
Tom fährt im Bett.
Die Katze fährt im Zirkus.
Lena tanzt im Feld.
Die Katze fährt im Garten.
Servus!
Zunächst öffnen wir ein neues Code-Fenster, wie wir es am Ende der Ersten-Schritte-Übung und beim Geisterspiel schon gemacht haben. Dort werden wir nun unser Unsinnige-Sätze-Programm schreiben und es unter dem Namen “unsinnige-saetze.py” speichern.
Von den ersten beiden Übungen her kennen wir auch schon ein paar Dinge, die wir hier wieder benötigen:
Zufallszahlen: randint(0, n)
Textausgabe in Shell-Fenster print
und Eingabe von der Tastatur input
while-Schleife
Zusätzlich können wir noch folgende Dinge brauchen:
In Python können wir Listen von gleichartigen Werte so definieren und in Variablen speichern.
Außerdem können wir, wie jede Variable auch Variablen, die Listen enthalten mit print
ausgeben.
Gib dazu folendes im Shell-Fenster ein:
>>> listeA = [1, 2, 3]
>>> print('listeA =', listeA)
listeA = [1, 2, 3]
Wir können dann auch direkt, über einen sogenannten Index, auf jedes Element der Liste zugreifen und es so auslesen oder auf einen neuen Wert setzen.
Bei Listen hat das erste Element übrigens den Index 0.
Beispiel im Shell-Fenster:
>>> listeA[1] = 1000
>>> print('listeA =', listeA, ' 3. Element =', listeA[2])
listeA = [1, 1000, 3] 3. Element = 3
Wir können auch die Länge einer Liste mit der Funktion len
ermitteln:
>>> len(listeA)
3
So wie die Funktionen print
und input
, die wir schon kennen, können wir natürlich auch selbst Funktionen definieren.
Wieder ein Beispiel im Shell-Fenster:
>>> def add(a, b):
return a + b
Hier haben wir die Funktion add
definiert, die 2 sogenannte Parameter a
und b
erhält, mit denen sie dann, wie mit lokalen Variablen arbeiten kann.
Nun rufen wir die Funktion ein paarmal auf:
>>> add(1, 2)
3
>>> add(3, -4)
-1
Eine mögliche Lösung für das Unsinnige-Sätze-Programm könnte dann so aussehen:
# CoderDojo Linz - Unsinnige Sätze
from random import randint
subject = ['Lena', 'Tom', 'Die Katze', 'Das Auto', 'Das Känguru' ]
verb = ['träumt', 'schwimmt', 'springt', 'fährt', 'tanzt' ]
object = ['Meer', 'Feld', 'Weltraum', 'Bett', 'Garten', 'Zirkus' ]
def pick(words):
num_words = len(words)
num_picked = randint(0, num_words - 1)
word_picked = words[num_picked]
return word_picked
def printSentence():
print(pick(subject), pick(verb), 'im', pick(object), end='.')
print()
print()
print('Unsinnige Sätze')
print('===============')
print()
print('Drücke einfach ENTER, um einen neuen Satz zu erzeugen.')
print('Oder "n" und dann ENTER, um das Programm zu beenden.')
print()
printSentence()
again = input()
while again != 'n':
printSentence()
again = input()
print('Servus!')