Python Tutorial
- jetzt Python programmieren lernen

input – Nutzereingaben anfordern

Eingaben vom Nutzer abfragen

Wir haben bei den vorherigen Kapiteln immer wieder Daten auf dem Bildschirm ausgegeben. Allerdings werden in der Realität die Daten entweder aus einer Datenbank kommen oder durch einen Nutzer festgelegt, also eingegeben werden.

Um eine Angabe vom Nutzer anzufordern, gibt es in Python den Befehl input

Diesem Befehl können wir einen Text mitgeben, damit dem Nutzer klar ist, was er denn eingeben soll. Die Eingabe selber wird in einer Variablen gespeichert, mit der wir dann weiterarbeiten können.

Unser Befehl sieht dann so aus:

benutzereingabe = input("Bitte Zahl eingeben")

Das Python-Programm pausiert nun, wenn es diese Programmzeile erreicht hat und wartet ab, bis der Nutzer eine Eingabe gemacht hat. Erst nach der Eingabe läuft das Programm dann weiter.

Nun können wir die Variable, die im Beispiel "benutzereingabe" genannt wurde, im weiteren Programmablauf nutzen.

benutzereingabe = input("Bitte Zahl eingeben")
print(benutzereingabe)

Input liefert Strings

Als Rückgabewert der input-Funktion erhalten wir eine String. Den Typ einer Variablen können wir uns über die Funktion type ausgeben lassen. Im folgenden Beispiel zum Testen:

benutzereingabe = input("Bitte Zahl eingeben")
print(type(benutzereingabe))

Als Ergebnis erhalten wir:

class 'str'

Wollen wir aber mit der vom Benutzer eingegebenen Zahl weiterrechnen, müssen wir den String erst in eine Zahl konvertieren.

Hier kommt das Prinzip des "castens" zum Einsatz. Der Typ einer Variablen umgewandelt.

Wenn man Typ einer Variablen umwandelt, spricht man "casting". Das Wort erinnert nicht zu Unrecht an das Besetzen von Filmrollen (also die Rollenverteilung). Und genau das machen wir mit dem Typ. Wir sagen, du bist nun eine Ganzzahl (integer).

benutzereingabe = int(benutzereingabe)

Jetzt können wir mit der Benutzereingabe als Zahl arbeiten. Diesen können wir über print ausgeben lassen.

print(benutzereingabe)

Wollen wir nun mit einem Text am Anfang ausgeben lassen, kommen kleine Probleme zum Vorschein:

print("Eingegeben wurde: " + benutzereingabe)

Wir versuchen nun die STRING-Ausgabe "Eingegeben wurde" mit einer Integer zu verknüpfen und das wird mit einer Fehlermeldung quittiert. Hier müssen wir den Typ wieder umwandeln und alles ist gut:

print("Eingegeben wurde: " + str(benutzereingabe))

Gibt der Benutzer allerdings die Zahl in andere Form ein (sprich keine Zahl), dann bekommt man Fehlermeldungen.