Python Tutorial 2 – Simplen Chatbot programmieren (If-Bedingungen)

In diesem Artikel wird es darum gehen, wie man einen simplen Chatbot baut, den man nach Belieben weiter ausbauen kann. Auf dem Weg dorthin werden wir unser Verständnis über Strings und Integer vertiefen und wir werden uns ansehen was man unter if-Bedingungen in Python versteht. Es ist nicht wichtig, dass du alle Konzepte schon gleich beim ersten Mal verstehst, sondern nur, dass du sie schon mal gehört hast. Das Gefühl wird sich dann nach und nach für die Konzepte entwickeln. Falls du noch nicht weißt, was man unter Datentypen und Variablen versteht, dann sieh dir mal diesen Artikel an: Python Tutorial 1 – Variablen & Datentypen

1. Programmanfang schreiben 

Erstelle zuerst ein neues Jupyter Notebook (in dem Artikel Einführung in Jupyter Notebooks wird erklärt wie das geht). Nun starten wir da, wo wir bei Tutorial 1 aufgehört haben. Wir schreiben eine einfache Begrüßung: 

name = input(„Hallo, ich bin Computi und wie heißt du? „)
print(„Cool, schön dich kennen zu lernen “ + name + „.“)

Falls du die Zelle nun ausführst (mit Enter + Shift oder indem du auf den Play Button drückst) wirst du zuerst nach deinem Namen gefragt und es erscheint ein Eingabefenster. Nachdem du deinen Namen eingegeben hast, wirst du vom Programm begrüßt. Die Variable name ist hier vom Datentyp String, deshalb kannst du in der zweiten Zeile auch andere Strings mit der Variable name addieren. Dadurch wird der Text zusammengeführt. 

Nun wollen wir fortfahren und den Nutzer nach seinem Alter fragen: 

alter = input(„Wie alt bist du denn? „)

Dein Code sollte nun ungefähr so aussehen (falls sich dein Jupyter notebook mal aufhängt hilft es oft Kernel + Restart & Clear Output zu drücken) : 

Python Code Begrüßungsprogramm

Nun ist die Variable alter wieder vom Typ String. Dies können wir auch überprüfen, indem wir folgendes in eine neue Zelle eingeben und diese ausführen: 

type(alter) 

Je nachdem wie hoch das Alter ist wollen wir, dass der Chatbot eine andere Antwort zurückgibt. Damit dies gelingt, müssen wir vorerst einen kleinen Exkurs zu if-Bedingungen machen.

2. Exkurs: If-Bedingungen 

If-Bedingungen sind ein sehr grundlegendes Konzept der Programmierung und aus den allermeisten Programmiersprachen nicht wegzudenken. Eine If-Bedingung kann man im Code lesen als: “Wenn die Bedingung X wahr ist, dann mache die Aktion Y”. 

Hier ein Beispiel: 

Zuerst definieren wir die Variable klausurnote und setzen diese auf 2. Danach kommt eine if-Bedingung. Diese sagt aus: 
Ist die Note besser als eine 3 (also eine 1 oder eine 2), dann gebe den Text “Wow! Das ist eine super Note.” aus. 
Übernehme das Codebeispiel, setze klausurnote auf 5 und führe die Zelle aus. Passiert das, was du erwartet hast? 

Wenn du eine If-Bedingung in Python schreibst, hat diese immer denselben Aufbau: 

if Bedingung: 
  Aktion 

Bei dem Schreiben einer if-Bedingung muss auf die Struktur (Syntax) geachtet werden. Daher ist es wichtig, dass zuerst das Schlüsselwort if geschrieben wird und am Ende der Bedingung ein Doppelpunkt folgt. Die nächsten Zeilen, die beschreiben was getan werden soll, wenn die Bedingung erfüllt ist, müssen alle mit einem Tab eingerückt werden. Dieses penible achten auf die Syntax ist essentiell, denn sonst versteht Python nicht, was genau getan werden soll und wirft gegebenenfalls einen Fehler aus. 

Wie oben an dem Beispiel schon gesehen, ist klausurnote < 3 eine Bedingung. Eine Bedingung gibt immer die Werte wahr oder falsch aus. Nur wenn der ausgegebene Wert wahr ist, wird die Aktion ausgeführt.
Hier ein paar weitere Beispiele für Bedingungen: 

if klausurnote == 1:
print(“Du bist ja einsame Spitze!”) 

In diesem Fall lautet die Bedingung klausurnote == 1 und bedeutet, dass die Aktion, nur ausgeführt werden soll, wenn die Klausurnote genau gleich Eins ist. Eventuell fragst du dich nun, warum zwei Istgleichzeichen genutzt werden. Dies ist so, damit Python das doppelte Istgleich vom einzelnen Istgleich unterscheiden kann, denn das einzelne Istgleich, wie beispielsweise: 

a = 2

beschreibt eine Zuweisung. Diese wird von rechts nach links gelesen. Die Zahl 2 wird der Variable a zugewiesen. 

a == 2

Dieser Ausdruck wiederum gibt entweder den booleschen Wert True (wahr)  oder False (falsch) aus. 

Probiere es selbst in deinem Jupyter Notebook aus. 

In der ersten Zeile wird die Variable a auf den Wert 2 gesetzt. In der dritten Zeile wird wahr ausgegeben, da die Variable a genau gleich zwei ist. In der vierten Zeile wird falsch ausgegeben, da die Variable a ungleich eins ist. 

Eine Zusammenfassung der wichtigsten Vergleichsoperatoren: 

a == ba ist genau gleich b? wahr oder falsch? 
a != ba ist ungleich b? wahr oder falsch? 
a < ba ist kleiner als b? wahr oder falsch? 
a > ba ist größer als b? wahr oder falsch? 
a >= ba ist größer oder gleich b? wahr oder falsch? 
a <= ba ist kleiner oder gleich b? wahr oder falsch? 

Probiere selbst ein paar if-Bedingungen zu schreiben und ein Gefühl für die Operatoren zu bekommen. Sind alle Code Ausgaben so wie erwartet? 

Hier noch ein paar weitere if-Beispiele: 

Das untere Beispiel kann auch umgeschrieben werden zu: 

alter = 10
if alter >= 16:
print(„Du darfst Filme ab 16 ansehen.“)
else:
print(„Du darfst noch keine Filme ab 16 ansehen.“)

Diese If-Bedinung hat nun folgende Struktur: 

if Bedingung:
Ausdruck_1 
else:
Ausdruck_2 

Und heißt in Sprache übersetzt soviel wie: Falls die Bedingung wahr ist führe den Ausdruck_1 aus, ansonsten führe den Ausdruck_2 aus. 

Diese If-Bedingung kann man noch weiter ausbauen. Zum Beispiel zu: 

alter = 10
if alter >= 16:
print(„Du darfst Filme ab 16 ansehen.“)
elif alter >= 12: 
print(“Du darfst schon Filme ab 12 ansehen.”
else:
print(„Du darfst noch keine Filme ab 16 ansehen.“)

Sie hat nun folgende Struktur: 

if Bedingung_1: 
Ausdruck_1 
elif Bedingung_2:
Ausdruck_2
else: 
Ausdruck_3 

In Sprache übersetzt heißt dies nun so viel wie: Falls die Bedingung_1 wahr ist, führe Ausdruck_1 aus, ansonsten falls Bedinung_2 wahr ist, führe Ausdruck_2 aus. Schließlich als letzte Option, falls weder Bedingung_1 noch Bedingung_2 erfüllt ist, führe Ausdruck_3 aus. Diese neue Struktur bzw. Syntax dient dazu den Code übersichtlicher zu gestalten. Man kann sofort sehen, welche Bedingungen zusammengehören. 

3. Chatbot Fortführung 

Nach dieser relativ langen Ausführung zum Thema If-Bedingungen fahren wir mit unserem Chatbot fort und implementieren das gelernte. Wir können nun mit den If-Bedingungen die Antworten des Chatbot’s abhängig von dem was eingegeben wurde machen. Lass uns als nächstes den Chatbot fragen, wie es ihm geht und dementsprechend reagieren. Füge dafür folgende Zeilen Code zu deinem Chatbot hinzu: 

stimmung = input(„Wie geht es dir heute? „)
if stimmung == “gut”: 
print(“Super, das freut mich! Ich fühle mich heute auch super.”) 
elif stimmung == “schlecht”: 
print(“Morgen ist ein neuer Tag!”) 
else: 
print(“Mir geht es heute ganz ok.”) 

Außerdem können wir den Nutzer auch nach seinem Alter fragen und die Antwort abhängig davon machen: 

alter = input(„Wie alt bist du denn? „)
if int(alter) < 20:
print(„Oh, das ist aber jung. Ich bin schon 54.“)
elif int(alter) > 70:
print(„Da fühle ich mich mit meinen 54 Jahren schon
gleich viel jünger. ;)“
else:
print(alter +  „, das ist ein schönes Alter.“)

4. Fazit

Du kannst den Chatbot nach deinem Belieben weiter ausbauen. Versuche noch ein zwei weitere if-Bedingungen zu implementieren und teste deinen Chatbot danach ausgiebig. 

Heute hast du ein wichtiges Konzept der Programmierung gelernt. Es wird dir noch sehr oft in deinem Programmierleben über den Weg laufen. Auch in sehr vielen anderen Sprache ist dieses Konzept grundlegend. 

Neuste Beiträge

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s