Die Python-Funktion print() schreibt eine oder mehrere Werte auf die Standardausgabe (stdout). Über die Parameter sep, end, file und flush lässt sich das Verhalten flexibel steuern — etwa für Logging auf stderr, das Schreiben in Dateien oder die Echtzeit-Ausgabe in CLIs.

Einleitung

print() ist Pythons Allzweck-Output-Funktion. Sie ruft intern str() auf jeden Wert auf, fügt sie mit sep zusammen, hängt end an und schreibt das Ergebnis in den Stream (file, default sys.stdout).

Die wichtigsten Eigenschaften:

  • Mehrere Werte gleichzeitig: print(a, b, c) schreibt sie mit Leerzeichen getrennt.
  • sep (default " "): Trenner zwischen Werten.
  • end (default "\n"): wird nach allen Werten geschrieben.
  • file: Stream-Objekt, in das geschrieben wird — sys.stderr, eine offene Datei oder io.StringIO.
  • flush (default False): Bei True wird der Buffer sofort entleert — wichtig für Live-Ausgaben in Pipes.

In Production-Code wird print() meistens durch das logging-Modul ersetzt — für CLI-Tools, Skripte und Debugging bleibt print() aber unverzichtbar.

Syntax

Python Syntax
print(*objects, sep=" ", end="\n", file=sys.stdout, flush=False)
Parameter
*objects

Beliebig viele Werte. Werden mit str() in Strings umgewandelt.

sep

(Optional) Trenner zwischen den Werten — Default: einzelnes Leerzeichen.

end

(Optional) String, der nach allen Werten geschrieben wird — Default: Newline \n.

file

(Optional) Stream-Objekt mit write()-Methode — Default: sys.stdout.

flush

(Optional) Wenn True, wird der Output sofort gepusht — Default: False.

Rückgabewert

None. print() ist nur wegen seines Seiteneffekts (Schreiben) interessant.

Beispiele

Standard-Ausgabe

Mehrere Argumente werden mit Leerzeichen verbunden — der häufigste Anwendungsfall:

Python Beispiel
print("Hallo", "Welt")
print(1, 2, 3, "Punkte")
Output
Hallo Welt
1 2 3 Punkte

sep und end anpassen

Mit sep und end lassen sich CSV-Zeilen, Listen oder Inline-Texte ohne String-Konkatenation bauen:

Python Beispiel
print("a", "b", "c", sep="-")
print("ohne newline", end=" → ")
print("nächster Teil")
# Werte für CSV
print("Alice", 17, "Bob", sep=",")
Output
a-b-c
ohne newline → nächster Teil
Alice,17,Bob

In stderr ausgeben

Trennt man Programm-Output (stdout) von Logs/Fehlern (stderr) sauber, lassen sich CLI-Tools gut in Pipelines einbinden:

Python Beispiel
import sys
print("Normaler Output")
print("Fehler!", file=sys.stderr)
Output
Normaler Output
Fehler!

In einen String schreiben

Mit io.StringIO lässt sich print() umlenken — praktisch für Tests oder Buffered Output:

Python Beispiel
import io
buf = io.StringIO()
print("Hallo", "Welt", sep="-", file=buf)
print(buf.getvalue().rstrip())
Output
Hallo-Welt

Praktische Beispiele

Progress-Anzeige in einer Schleife

end="\r" und flush=True machen aus einer einfachen Schleife eine Live-Progress-Anzeige im Terminal:

Python Beispiel
import time
for i in range(101):
    print(f"\rFortschritt: {i:3d}%", end="", flush=True)
    time.sleep(0.01)
print()   # finaler Newline

Tabelle mit ausgerichteten Spalten

Mit f-Strings und print() ist eine kleine Konsolen-Tabelle in 5 Zeilen gebaut:

Python Beispiel
products = [("Apfel", 0.49), ("Brot", 2.30), ("Wassermelone", 4.95)]
print(f"{'Name':<14}{'Preis':>8}")
print("-" * 22)
for name, preis in products:
    print(f"{name:<14}{preis:>8.2f}")
Output
Name             Preis
----------------------
Apfel             0.49
Brot              2.30
Wassermelone      4.95

Mit file=open(...) schreibt print direkt in eine Datei — der Context Manager schließt sauber:

Python Beispiel
with open("report.txt", "w", encoding="utf-8") as f:
    print("Bericht vom 03.05.2026", file=f)
    print("-" * 30, file=f)
    print("Alle Tests bestanden.", file=f)

Praktische Hinweise

  • f-Strings statt +: print(f"x = {x}") ist immer lesbarer als print("x = " + str(x)).
  • Für Production: logging statt print. print() lässt sich nicht zentral abschalten oder umkonfigurieren.
  • flush=True in Live-Ausgaben und Pipes (tee, Docker-Logs) — sonst sieht man die Ausgabe erst beim Programmende.
  • Trenne stdout und stderr in CLI-Tools sauber. Fehler nach stderr, Daten nach stdout.
  • pprint.pprint() ist ideal für hübsch formatierte Datenstrukturen.
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht