Die Python-Funktion input() blockiert die Programmausführung, liest eine Zeile von der Standardeingabe (stdin) und gibt den eingegebenen Text als String back — ohne den abschließenden Zeilenumbruch. Optional wird vor dem Lesen ein Prompt-Text auf stdout ausgegeben. input() ist das Standard-Werkzeug für interaktive Konsolenprogramme und einfache CLI-Tools.

Einleitung

input() macht aus einem Python-Skript ein interaktives Programm: Es wartet, bis die Nutzerin etwas eintippt und Enter drückt, und liefert die Eingabe dann als str. Wer Zahlen oder andere Typen braucht, muss explizit konvertieren (int(), float(), ...).

Wichtige Eigenschaften:

  • Immer String: Auch wenn der Nutzer „42" eintippt, ist das Ergebnis "42" als Zeichenkette.
  • Blockiert: Das Programm pausiert, bis Enter gedrückt wird.
  • Prompt geht an stdout: nicht an stderr. In Pipes, die stdout umleiten, kann der Prompt dadurch verloren gehen — dann besser print(..., file=sys.stderr) davor.
  • EOF: Wird Ctrl+D (Linux/Mac) oder Ctrl+Z (Windows) gedrückt, wirft input() einen EOFError.

Für sensible Eingaben wie Passwörter ist getpass.getpass() die richtige Wahl — sie zeigt die Eingabe nicht an.

Syntax

Python Syntax
input()
input(prompt)
Parameter
prompt

(Optional) String, der vor der Eingabe-Aufforderung ausgegeben wird. Kein abschließendes Newline nötig.

Rückgabewert

Ein str mit der eingegebenen Zeile, ohne abschließendes \n. Bei EOF wird EOFError ausgelöst.

Beispiele

Einfache Eingabe

Python Beispiel
name = input("Wie heißt du? ")
print(f"Hallo, {name}!")

Zahl einlesen

Python Beispiel
alter = int(input("Dein Alter: "))
print(f"In 10 Jahren bist du {alter + 10}.")

Mehrere Werte aus einer Zeile

Python Beispiel
# Eingabe: "3.14 2.71 1.62"
values = [float(x) for x in input("Drei Zahlen: ").split()]
print(values)

Praktische Beispiele

Eingabe mit Validierungs-Loop

Python Beispiel
def read_number(prompt, mindestwert=0):
    while True:
        raw = input(prompt).strip()
        try:
            n = int(raw)
        except ValueError:
            print("Bitte eine ganze Zahl eingeben.")
            continue
        if n < mindestwert:
            print(f"Mindestens {mindestwert}.")
            continue
        return n

anzahl = read_number("Wie viele Items? ", mindestwert=1)

Ja/Nein-Bestätigung

Python Beispiel
def yes_no(question):
    answer = input(f"{question} [j/N] ").strip().lower()
    return answer in ("j", "ja", "y", "yes")

if yes_no("Wirklich löschen?"):
    print("Wird gelöscht.")
else:
    print("Abgebrochen.")

Passwort verdeckt einlesen

Python Beispiel
from getpass import getpass

# Im Gegensatz zu input() wird die Eingabe nicht angezeigt
pw = getpass("Passwort: ")
print(f"Eingegeben: {len(pw)} Zeichen")

EOF und Ctrl+C abfangen

Python Beispiel
try:
    text = input("Eingabe: ")
except EOFError:
    print("Ende der Eingabe erreicht.")
except KeyboardInterrupt:
    print("Vom Nutzer abgebrochen.")

Praktische Hinweise

  • Immer trim und validieren: input().strip() entfernt führende/abschließende Whitespaces.
  • Konvertierung schlägt schnell fehlint(input(...)) wirft ValueError bei nicht-numerischen Eingaben. Mit try/except behandeln.
  • print() zuvor verbraucht keine Newlines — der Prompt von input() ist Bestandteil der gleichen Zeile.
  • Für komplexere CLIs: argparse (Argumente), prompt_toolkit (Eingabe mit Editing/History), rich.prompt (hübsche Prompts).
  • In Tests lässt sich input() per monkeypatch (pytest) oder unittest.mock.patch("builtins.input", ...) ersetzen.
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht