Eingabe

Eingabe mit input()

Eingabe über Tastatur Es gibt kaum Programme, die ohne jegliche Eingaben auskommen. Eingaben können über viele Wege erfolgen, so zum Beispiel aus einer Datenbank, von einem anderen Rechner im lokalen Netzwerk oder auch über das Internet. Die einfachst und wohl auch häufigste Eingabe erfolgt jedoch über die Tastatur. Für diese Form der Eingabe bietet Python die Funktion input(text).

Kommt es zum Aufruf der Funktion input während eines Programmlaufes, wird der Programmablauf solange gestoppt, bis die Benutzerin oder der Benutzer eine Eingabe über die Tastur tätigt und diese mit der Return-Taste abschließt. Damit der User auch weiß, was er einzugeben hat, wird der String des Parameters "text" ausgegeben, sofern ein solcher String existiert. Der Parameter von input() ist optional.

Der Eingabestring des Benutzers wird von input() interpretiert, d.h. input() liefert beispielsweise einen Integer Wert zurück, wenn der Benutzer eine ganze Zahl eingeben hat und eine Liste, wenn der Benutzer eine Liste eingegeben hat.

Wir zeigen dies in der folgenden interaktiven Python-Shell-Sitzung:

>>> x = input("Ihr Name? ")
Ihr Name? "John"
>>> print(x)
John
>>> x = input("Ihre Gehalt? ")
Ihre Gehalt? 2877.03
>>> x
2877.03
>>> type(x)
<type 'float'>
>>> x = input("Ihre Lieblingssprachen? ")
Ihre Lieblingssprachen? ["Java", "Perl", "C++"]
>>> print(x)
['Java', 'Perl', 'C++']
>>> type(x)
<type 'list'>
>>> 


Eingabe mit raw_input()

Anders als bei input, interpretiert raw_input nicht die Eingabe. Das heißt, raw_input liefert immer einen String zurück, d.h. der Eingabestring des Bentuzers wird unverändert weitergeleitet. Will man einen bestimmten Datentyp, so kann man die Eingabe durch die entsprechende Casting-Funktion wandeln oder man kann die eval-Funktion verwenden. Wir demonstrieren dies wieder an einigen Beispielen in der interaktiven Python-Shell:

>>> x = raw_input("Ihr Name? ")
Ihr Name? John
>>> print(x)
John
>>> x = raw_input("Ihre Gehalt? ")
Ihre Gehalt? 2877.03
>>> print(x)
2877.03
>>> type(x)
<type 'str'>
>>> x = float(raw_input("Ihre Gehalt? "))
Ihre Gehalt? 2877.03
>>> type(x)
<type 'float'>
>>> x = eval(raw_input("Ihre Lieblingssprachen? "))
Ihre Lieblingssprachen?  ["Java", "Perl", "C++"]
>>> print(x)
['Java', 'Perl', 'C++']
>>> type(x)
<type 'list'>
>>>