· 

Ein- und Ausgabe in Python

1. Einführung

Ein Programm ohne dynamische Nutzereingaben ist besonders für Programmieranfänger sehr unbefriedigend. Es ist verständlich, dass man gerade als Neuling so viele sichtbare Ergebnisse wie möglich produzieren möchte und Programme schreiben will, die einem wirklich weiterhelfen. Deshalb beschäftigen wir uns in diesem Artikel mit der Ausgabe von Text und dem Reagieren auf Benutzereingaben.

2. Ausgabe auf der Konsole

Die Ausgabe auf der Konsole hast du bereits kennengelernt. Hierfür wird lediglich der Befehl print( ... ) benötigt. Wenn du innerhalb der runden Klammern des Print-Befehls den String "Servus Welt!" einträgst, wird dieser beim Ausführen auf der Konsole ausgegeben.
print("Servus Welt!")
Was ist, wenn man statt der Welt eine bestimmte Person grüßen möchte? Dann kann man eine Variable mit dem Namen name definieren, ihr einen Namen zuweisen und diese Variable dann mit dem Plus so in den String einbauen, dass am Ende der Name in einer schön formatierten Textnachricht ausgegeben wird. Dieses "Addieren" von Zeichenketten nennt man auch Konkatenation.
name = "Kazuto"

print("Hallo " + name + "!")
Diese Variante mit dem Plus ist allerdings programmiertechnisch sehr unschön und lädt zu zahlreichen Syntaxfehlern ein. Deshalb gibt es in Python 3 eine Methode, mit der man Strings formatieren kann. Um sie nutzen zu können, rufst du mit einem Punkt auf der Zeichenkette, die formatiert werden soll, die Methode format auf. Dort, wo du später den Wert deiner Variablen, die du zuvor mühsam mit dem Plus konkateniert hast, haben willst, trägst du eine öffnende und eine schließende geschweifte Klammer in deinem String ein. In die runden Klammern der Methode format kommt jetzt einfach der Variablenname.
name = "Kazuto"

print("Hallo {}!".format(name))
Als Ausgabe erhältst du "Hallo Kazuto!". Geht das nur für eine Variable? Nein, du kannst mit format auch mehrere Variablen eintragen. Für jede Stelle, wo du etwas eintragen möchtest, setzt du die geschweiften Klammern in deinen String. Danach werden die Werte, die für die Klammern eingesetzt werden sollen, nacheinander mit Kommata getrennt in die runden Klammern der Methode format geschrieben.
Wenn du dich z. B. mit Name, Alter und Wohnort vorstellen möchtest, dann kannst du zunächst einmal drei Variablen name, alter und wohnort definieren. Danach formulierst du einen Satz wie z. B. "Mein Name ist { }. Ich bin { } Jahre alt und komme aus { }". In die runden Klammern von format trägst du nun nacheinander die Variablennamen ein und zwar in genau der Reihenfolge, in der die geschweiften Klammern (von links nach rechts) ersetzt werden sollen.
name = "Kazuto"
alter = 25
wohnort = "München"

print("Hallo, mein Name ist {}. Ich bin {} Jahre alt und komme aus {}.".format(name, alter, wohnort))
Du kannst statt Variablen die Werte auch direkt in format eintragen:
print("Hallo, mein Name ist {}. Ich bin {} Jahre alt und komme aus {}.".format("Kazuto", 25, "München"))
Das macht allerdings den generischen Charakter zunichte. Wenn du weniger Variablen als geschweifte Klammern im String in format einträgst, liefert Python eine Fehlermeldung. Wenn du mehr Variablen als geschweifte Klammern im String einträgst, dann gibt es keinen Fehler. Python ignoriert alle Eingaben, für die es keine geschweiften Klammern mehr gibt.

3. Benutzereingabe

Das Problem ist, dass du diese Daten (noch) nicht zur Laufzeit deines Programms eintragen kannst. Das werden wir jetzt aber ändern. Mit nur einem einzigen Befehl kannst du nämlich vom Benutzer deines Programms Eingaben einfordern. Dieser Befehl lautet input. In runden Klammern wird eingetragen, was der Benutzer beim Erreichen dieses Befehls angezeigt bekommen soll (z. B. eine Aufforderung wie "gib deinen Namen ein").
input("Gib deinen Namen ein!\n")
Das Programm wartet dann so lange, bis der Benutzer etwas eingetragen und auf ENTER gedrückt hat, um voranzuschreiten. Als Ergebnis liefert das Programm die Eingabe des Benutzers in Form eines Strings zurück, den man dann einer Variable zuweisen kann.
Als Beispiel verändern wir unser Programm zur Ausgabe des Namens, des Alters und des Wohnorts dahingehend, dass das Programm zur Laufzeit diese Informationen abfragt und du dich am Ende dem Programm durch eine Nachricht vorstellst.
Hierfür fragen wir nacheinander "Wie heißt du?", "Wie alt bist du?" und "Wo wohnst du?". Diese Informationen weisen wir den zuvor bereits definierten Variablen zu und geben sie auf der Konsole aus.
name = input("Wie heißt du?\n")
alter = input("Wie alt bist du?\n")
wohnort = input("Wo wohnst du?\n")

print("Hallo, mein Name ist {}. Ich bin {} Jahre alt und komme aus {}.".format(name, alter, wohnort))
Mit dem "\n" beginnst du einfach eine neue Zeile. Ansonsten würde deine Eingabe nicht in der nächsten, sondern in derselben Zeile wie die Aufforderung zur Eingabe stehen. Das sieht unschön und unübersichtlich aus.
Wenn du möchtest, dass die Benutzereingaben z. B. Zahlenwerte sind, damit du mit ihnen rechnen kannst, dann musst du sie mit den entsprechenden Methoden umwandeln, da sie von der Methode input als String zurückgegeben werden und du mit Strings keine arithmetischen Operationen durchführen kannst. Wenn du z. B. ein Programm schreiben möchtest, dass bei einem eingegebenen Alter berechnet, wann du geboren wurdest, dann musst du eine Umwandlung der Eingabe in Ganzzahlen (Integer) durchführen.
Zuerst definierst du dir eine Variable alter und fragst den Benutzer "Wie alt bist du?". Um die Methode input schreibst du int( ... ) und setzt den Methodenaufruf input in die runden Klammern von int. Damit sagst du dem Programm, dass es die Eingabe in eine Ganzzahl umwandeln soll.
alter = int(input("Wie alt bist du?\n"))
Nun definierst du eine Variable für das aktuelle Jahr. Zum Zeitpunkt der Aufnahme dieses Videos ist das das Jahr 2019.
jahr = 2019
Der Algorithmus zur Berechnung des Geburtsjahrs auf Basis des eingegebenen Alters ist trivial. Du ziehst einfach vom aktuellen Jahr das eingegebene Alter ab.
geburtsjahr = jahr - alter
Nun kannst du das Ergebnis (wie bereits gelernt) mit einem formatierten String ausgeben.
print("Du wurdest im Jahr {} geboren.".format(geburtsjahr))

4. Quellcode (interaktiv)

Hier kannst du das Programm zum Berechnen des Geburtsjahres ausprobieren und es bei Bedarf anpassen.