Lob ist wichtig – Schmeichelprogramm
Wir haben mit dem Modul „random“ aus dem letzten Kapitel nun die Möglichkeit kennengelernt, in unseren Python-Programmen mit dem Zufall zu spielen. Jetzt wollen wir uns ein Schmeichelprogramm programmieren. Dieses soll uns loben, was das Zeug hält. Wer lieber die Welt negativ sieht, darf natürlich genauso ein Beschimpfungsprogramm erstellen. Alles eine Frage der Wortwahl.
Das gewünschte Ergebnis: ein sich immer änderndes Lob ausgeben in der Form:
„Du bist der ADJEKTIV NOMEN“
Beispielsweise:
„Du bist der beste Freund“
„Du bist der liebenswürdigste Mensch“
Was benötigen wir? Natürlich haben wir die jetzt benutzten Funktionen und Vorgehensweisen bei Python schon in den letzten Kapiteln kennengelernt. Am besten ist natürlich nicht einfach den später folgenden Code abzutippen, sondern erst einmal selber probieren, eine Lösung zu erstellen.
Was haben wir:
wir haben beliebige viele positive Adjektive (die Liste kann beliebig erweitert werden):
- beste
- liebenswürdigste
- schönste
- größte
- …
Zusätzlich haben wir Nomen:
- Mensch
- Hecht
- Freund
- Kumpel
- Programmierer
- …
Aus diesen 2 Listen können wir nun eine Ausgabe auf dem Bildschirm durch Zufall erzeugen lassen. Beispiele dazu, die können kommen:
- Du bist der größte Freund
- Du bist der liebenswürdigste Mensch
- Du bist …
Aufgabe: Lobesprogramm
Wir benötigen also in Python die Möglichkeit,
- die Adjektive zu speichern
- die Nomen zu speichern
- eine zufällige Auswahl aus den beiden gesicherten
- und diese soll dann ausgegeben werden
Unbedingt selber probieren. Dadurch lernt man am schnellsten (auch aus den unter Umständen gemachten Fehlern).
Lösungsweg: Lobesprogramm:
Probiert und zu einem Ergebnis gekommen? Hier eine Lösung für unser Lob-Programm.
Im ersten Schritt erstellen wir 2 Listen. Variablen wären hier unpraktisch, da wir ja viele ähnliche Wörter haben, uns später per Zufall aus den Listen auswählen wollen:
Unsere Liste für die Adjektive:
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste"]
Und jetzt können wir auch gleich eine zweite Liste mit den Nomen machen:
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste"]
nomen = ["Mensch", "Hecht", "Freund", "Kumpel", "Programmierer"]
Wir wollen nun eine Ausgabe auf dem Bildschirm:
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste"]
nomen = ["Mensch", "Hecht", "Freund", "Kumpel", "Programmierer"]
print ("Du bist der ")
Ab jetzt benötigen wir den Zufall. Dazu müssen wir das Modul random
importieren. Das muss gleich am Anfang unseres Python-Programmes geschehen. Muss ist übertrieben. Es muss importiert sein, bevor es eingesetzt wird. Allerdings ist guter Stil am Anfang von einem Python-Programm alle Module zu importieren.
import random
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste"]
nomen = ["Mensch", "Hecht", "Freund", "Kumpel", "Programmierer"]
print ("Du bist der ")
Und nun wollen wir eine zufällige Auswahl. Diese erhalten wir über random
und choice
:
import random
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste"]
nomen = ["Mensch", "Hecht", "Freund", "Kumpel", "Programmierer"]
print ("Du bist der ")
print (random.choice(adjektive))
print (random.choice(nomen))
Als Ergebnis erhalten wir:
Du bist der
beste
Freund
Die Ausgabe kommt bereits, allerdings untereinander. Also nutzen wir nur 1 print
und unser Schmeichelprogramm ist fertig. Dies einmal nach dem Aufstehen ausführen und die Stimmung ist mindestens um 3,5 Prozent besser:
import random
adjektive = ["beste", "liebenswuerdigste", "schoenste", "groesste"]
nomen = ["Mensch", "Hecht", "Freund", "Kumpel", "Programmierer"]
print ("Du bist der " +
random.choice(adjektive) +
" " +
random.choice(nomen)
)
Ausgabe von unserem erstellten Programm:
Du bist der beste Freund
Kleine Anmerkung am Rande. Es wurde in der fertigen Lösung noch ein Leerzeichen in der Ausgabe zwischen dem Adjektiv und dem Nomen ausgegeben. Die print
-Ausgabe ist im obigen Code umgebrochen, um besser lesbar zu sein. Diese könnte auch komplett in einer Zeile im Programmcode stehen.
Und nun „frohes Loben“.