Die zwei Funktionen, die dein Programm interaktiv machen
Die meisten frühen Python-Programme haben dieselbe Form: frag den Nutzer mit input() etwas, tu etwas mit der Antwort und berichte mit print() zurück. Diese beiden eingebauten Funktionen sind, wie dein Code mit der Welt spricht.
Nehmen wir sie nacheinander.
print(): Ausgabe schreiben
In der einfachsten Form schreibt print() eine Textzeile ins Terminal:
Das gibt das Wort hello gefolgt von einem Zeilenumbruch aus. Der Zeilenumbruch trennt einen print-Aufruf auf dem Bildschirm vom nächsten.
Du kannst mehrere Werte in einem Aufruf übergeben, und Python setzt ein Leerzeichen zwischen sie:
Ausgabe:
Name: Ada Age: 36
Die Werte müssen keine Strings sein. print ruft str() auf jedes Argument auf, du kannst Typen also frei mischen:
Das Trennzeichen ändern
Willst du kein Leerzeichen zwischen den Werten, nimm sep:
Das Zeilenende ändern
Standardmäßig hängt print einen Zeilenumbruch an. Mit end änderst du das — zum Beispiel, um die Ausgabe in derselben Zeile zu halten:
end="" ist der Trick, um eine Zeile Stück für Stück aufzubauen.
print geht nach stdout
Standardmäßig schreibt print nach stdout (Standardausgabe) — der normale Ort, an dem Terminalausgabe erscheint. Mit dem Argument file kannst du nach stderr, in eine Datei oder in jedes andere dateiartige Objekt umleiten:
Für formatierte Ausgabe — zwei Nachkommastellen, aufgefüllte Spalten, Kommas in großen Zahlen — nimm f-Strings innerhalb von print:
input(): Vom Nutzer lesen
input(prompt) hält das Programm an, zeigt den Prompt und wartet. Was immer der Nutzer tippt — bis er Enter drückt — kommt als String zurück.
Drei Dinge an input, die Neulinge beißen:
Es liefert immer einen String
Selbst wenn der Nutzer 42 tippt, bekommst du den String "42" zurück. Du kannst damit nicht direkt rechnen:
Deshalb siehst du häufig int(input(...)) oder float(input(...)) inline. Tippt der Nutzer etwas, das keine gültige Zahl ist, wirft int() ValueError — damit gehen wir im Kapitel über Ausnahmen ordentlich um.
Der Prompt ist optional
Übergibst du keinen Prompt, wartet input() stumm, was fast immer falsch ist — der Nutzer hat keine Ahnung, was du wissen willst. Übergib immer einen klaren Prompt:
Es entfernt nichts
Was immer der Nutzer tippt, einschließlich führender und nachgestellter Leerzeichen, kommt unverändert zurück. Wenn das für deine Logik zählt, ruf .strip() auf:
Ein kleines vollständiges Programm
Alles zusammen — ein paar Zeilen, die den Nutzer nach seinen Infos fragen und einen kleinen Bericht ausgeben:
Zwölf Zeilen. Sie lesen sich von oben nach unten wie eine Anleitung, nicht wie Code. Das ist der Stil, den diese Dokumente fördern wollen.
Was ist mit print-basiertem Debugging?
Du hörst manchmal, „echte Entwickler nutzen einen Debugger, keine print-Anweisungen“. Das ist übertrieben. Print ist ein vollkommen gutes Debugging-Werkzeug, besonders für kleine Skripte und schnelle Experimente. Streu print-Aufrufe großzügig ein, während du etwas herausfindest, und entferne sie, wenn du fertig bist.
Zwei kleine Komfort-Tricks:
Das = innerhalb eines f-Strings gibt Name und Wert aus — das spart viel Boilerplate wie print("name =", name).
Weiter
print und input geben dir eine vollständige Gesprächsschleife: fragen, lesen, antworten. Das nächste Kapitel mischt Bedingungen ein — die if-Anweisung und die Operatoren, die entscheiden, was dein Programm auf Basis der Werte tut, die es sieht.
Häufig gestellte Fragen
Was macht print() in Python?
Es schreibt Werte ins Terminal. print("hello") gibt hello gefolgt von einem Zeilenumbruch aus. Du kannst mehrere Werte mit Kommas trennen, und print() setzt standardmäßig ein Leerzeichen zwischen sie.
Wie funktioniert input() in Python?
input(prompt) pausiert das Programm, zeigt den Prompt, wartet, bis der Nutzer etwas tippt und Enter drückt, und liefert das Getippte als String zurück. Immer als String — willst du eine Zahl, pack den Aufruf in int(...) oder float(...).
Wie gebe ich in Python in derselben Zeile aus?
Übergib end="" an print. Standardmäßig hängt print nach der Ausgabe einen Zeilenumbruch an; end auf einen leeren String (oder ein anderes Zeichen) zu setzen, ersetzt diesen Umbruch.