Die Python-Funktion format(value, format_spec) wendet einen Format-Spezifizierer auf einen Einzelwert an und liefert einen formatierten String back. Sie nutzt dieselbe Mini-Sprache wie f-Strings (f"{x:.2f}") und die str.format()-Methode. format() ist die richtige Wahl, wenn der Spezifizierer dynamisch ist oder wenn nur ein einziger Wert formatiert werden soll.

Einleitung

format() ist Pythons formaler Eingang zur Format-Mini-Sprache — der gleichen, die hinter f-Strings (f"{x:.2f}") und der Methode str.format() steht. Während f-Strings und str.format() mehrere Werte in einen Template-String einsetzen, verarbeitet format() genau einen Wert mit einem einzelnen Spezifizierer.

Der größte Mehrwert: dynamische Spezifizierer. Wenn das Format-Detail (Anzahl Nachkommastellen, Padding-Länge, Basis) erst zur Laufzeit feststeht, ist format() sauberer als f-Strings mit verschachteltem Format.

Intern ruft format(value, spec) die Methode value.__format__(spec) auf — Custom-Klassen können so eigene Format-Spezifizierer definieren.

Syntax

Python Syntax
format(value, format_spec="")
Parameter
value

Beliebiger Wert. Ruft intern dessen __format__(format_spec) auf.

format_spec

(Optional) Format-Spezifizierer als String, z. B. ".2f", "08d", ">10". Default: leerer String → identisch zu str(value).

Format-Mini-Sprache (häufigste Spezifizierer)

SpecBedeutung
.2fFloat mit 2 Nachkommastellen
,Tausender-Trenner (,)
_Tausender-Trenner (_)
08dInteger, mit Nullen auf 8 Stellen aufgefüllt
b, o, x, XBinär, Oktal, Hex (klein/groß)
%Prozent (×100, mit %-Zeichen)
e, EWissenschaftliche Notation
>10Rechtsbündig auf 10 Zeichen
<10Linksbündig auf 10 Zeichen
^10Zentriert auf 10 Zeichen

Beispiele

Zahlen formatieren

Python Beispiel
print(format(3.14159, ".2f"))
print(format(1234567, ","))
print(format(255, "08b"))
print(format(255, "X"))
print(format(0.875, ".1%"))
Output
3.14
1,234,567
11111111
FF
87.5%

Padding und Ausrichtung

Python Beispiel
for label in ["A", "BB", "CCC"]:
    print(f"|{format(label, '<5')}|{format(label, '^5')}|{format(label, '>5')}|")
Output
|A    |  A  |    A|
|BB   | BB  |   BB|
|CCC  | CCC |  CCC|

Dynamischer Spezifizierer

Python Beispiel
value = 42.567
for prec in range(4):
    print(format(value, f".{prec}f"))
Output
43
42.6
42.57
42.567

Praktische Beispiele

Tabelle mit ausgerichteten Spalten

Python Beispiel
products = [("Apfel", 0.49), ("Brot", 2.30), ("Käse", 12.95)]
for name, preis in products:
    print(f"{format(name, '<10')} {format(preis, '>8.2f')} €")
Output
Apfel          0.49 €
Brot           2.30 €
Käse          12.95 €

Custom-Klasse mit eigenem Format-Spezifizierer

Python Beispiel
class Temperature:
    def __init__(self, celsius):
        self.c = celsius

    def __format__(self, spec):
        if spec == "F":
            return f"{self.c * 9 / 5 + 32:.1f} °F"
        if spec == "K":
            return f"{self.c + 273.15:.2f} K"
        return f"{self.c} °C"

t = Temperature(20)
print(format(t))
print(format(t, "F"))
print(format(t, "K"))
Output
20 °C
68.0 °F
293.15 K

Dynamisches Format aus Konfiguration

Python Beispiel
config = {"prec": 3, "sep": ","}
value = 1234567.89123
spec = f"{config['sep']}.{config['prec']}f"
print(format(value, spec))
Output
1,234,567.891

Praktische Hinweise

  • f-Strings sind in 99 % der Fälle die bessere Wahl: f"{x:.2f}" ist kürzer und lesbarer als format(x, ".2f").
  • format() als Funktion glänzt bei dynamischen Spezifizierern oder beim Übergeben als Callback.
  • Custom-Klassen: __format__(self, spec) definiert das eigene Format-Verhalten.
  • Verwandte API: str.format() für Templates mit mehreren Platzhaltern, f-Strings für Inline-Formatierung.
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht