Menu

Python-Datentypen: int, float, str, bool, list, dict und mehr

Eine Tour durch Pythons eingebaute Datentypen — Zahlen, Strings, Booleans, None, Listen, Tupel, Sets, Dicts — mit Beispielen und dem passenden Einsatzzweck.

Warum Typen überhaupt zählen

Ein Typ ist einfach eine Kategorie, die Python sagt, wie sich ein Wert verhalten soll. Zwei Ganzzahlen zu addieren bedeutet Arithmetik; zwei Strings zu addieren bedeutet Verkettung; einen String zu einer Ganzzahl zu addieren ist ein Fehler. Der Typ eines Werts bestimmt, welche Operationen auf ihm sinnvoll sind.

Python hat einen kleinen, freundlichen Satz eingebauter Typen. Vier davon — int, float, str, bool — wirst du in fast jedem Programm nutzen, das du schreibst. Der Rest taucht auf, sobald du anfängst, Daten in Sammlungen zu organisieren.

Zahlen: int und float

Zwei Arten von Zahlen, und Python wählt, welche du bekommst, daran, wie du sie geschrieben hast:

main.py
Output
Click Run to see the output here.

Kein Dezimalpunkt? Du bekommst ein int. Ein Dezimalpunkt? Du bekommst ein float. Arithmetik mischt beide frei — jede Operation mit einem float ergibt einen float:

main.py
Output
Click Run to see the output here.

Ganzzahlen können in Python so groß werden, wie dein Arbeitsspeicher es erlaubt — keine Überläufe, keine feste 32- oder 64-Bit-Grenze. Du kannst 2 ** 1000 berechnen und Python reicht dir jede Ziffer zurück.

Floats folgen den üblichen IEEE-754-Regeln, was ein paar klassische Überraschungen mit sich bringt:

main.py
Output
Click Run to see the output here.

Das gibt 0.30000000000000004 aus, nicht 0.3. Das ist kein Python-Bug — so funktioniert binäre Fließkommaarithmetik in jeder Sprache. Wenn du exakte Dezimalwerte brauchst (Geldbeträge zum Beispiel), nimm stattdessen das Modul decimal. Für alles andere reicht meist eine Rundung bei der Anzeige.

Strings: str

Strings sind Zeichenfolgen. Setz sie in einfache oder doppelte Anführungszeichen — Python ist egal welche, solange öffnendes und schließendes Zeichen übereinstimmen:

main.py
Output
Click Run to see the output here.

Dreifach zitierte Strings (""" ... """) erstrecken sich über mehrere Zeilen:

main.py
Output
Click Run to see the output here.

Strings haben eine riesige API, die du mit der Zeit lernst — Slicing, Methoden wie .upper(), .split(), .replace() und die f-String-Formatierung, die dir f"Hello, {name}" erlaubt. Es gibt als Nächstes eine eigene Seite zu Strings.

Booleans: bool

Zwei Werte, genau so geschrieben wie gezeigt — True und False, mit großem Anfangsbuchstaben. Vergleiche liefern Booleans:

main.py
Output
Click Run to see the output here.

Unter der Haube sind True und False wörtlich 1 und 0, also kannst du Booleans aufaddieren, wenn du zählen willst, wie viele Bedingungen wahr waren:

main.py
Output
Click Run to see the output here.

None: das Fehlen eines Werts

None ist Pythons Art zu sagen „kein Wert“. Funktionen, die nichts explizit zurückgeben, geben None zurück. Du nutzt es auch als Platzhalter:

main.py
Output
Click Run to see the output here.

Die Konvention: mit is None und is not None prüfen — nicht mit == None. is prüft Identität, und das meinst du hier tatsächlich.

Listen, Tupel, Sets, Dictionaries

Das sind die vier eingebauten Sammlungstypen. Jeder bekommt seine eigene Seite, aber hier die Kurzfassung, damit du sie erkennst:

main.py
Output
Click Run to see the output here.

Faustregeln:

  • List: eine Folge, die du erwartest zu ändern. Hinzufügen, Entfernen, Sortieren — alles in Ordnung.
  • Tuple: eine Folge, die du vor Änderungen schützen willst. Oft für feste Datensätze wie (x, y)-Koordinaten.
  • Set: ein Beutel eindeutiger Elemente, wenn Duplikate ein Bug wären.
  • Dict: Nachschlagen per Schlüssel. Die JSON-förmige Struktur.

Zwischen Typen umwandeln

Python wandelt Typen nicht automatisch für dich um, wenn das riskant wäre. Eine Ganzzahl in einen String oder einen String in eine Zahl zu verwandeln, musst du ausdrücklich verlangen:

main.py
Output
Click Run to see the output here.

Ergibt eine Umwandlung keinen Sinn — int("hello") zum Beispiel — wirft Python ValueError und verrät, was du ihm gegeben hast. Fehler erklärt, beheben und weitermachen.

Einen Typ prüfen

Zwei Werkzeuge lohnen sich zu kennen:

main.py
Output
Click Run to see the output here.

type() ist gut für einen kurzen Blick in der REPL. isinstance() nutzt du in echtem Code, weil es mit Vererbung gut umgeht und gegen mehrere Typen auf einmal prüfen kann.

Eine kleine Erkundungsübung

Führe den Block unten erst unverändert aus, dann ändere ein paar Werte und schau, welche Typen herauskommen:

main.py
Output
Click Run to see the output here.

for musst du noch nicht verstehen — dazu kommen wir —, aber das gibt dir auf einen Blick ein Gefühl für die eingebauten Typen.

Wähl den Typ, der zu den Daten passt

Du musst dir nicht jeden Typ sofort merken. Du musst nur einen erkennen, wenn du ihn siehst, und beim Anlegen von Daten den richtigen wählen. „Ist das fix oder veränderbar? Eindeutig oder nicht? Nachschlagen per Schlüssel oder per Position?“ Diese vier Fragen wählen in neunzig Prozent der Fälle den Sammlungstyp.

Als Nächstes: Strings im Detail, weil sie der eine Datentyp sind, den du in fast jedem Programm anfasst.

Häufig gestellte Fragen

Welche sind die wichtigsten Datentypen in Python?

Zahlen (int und float), Strings (str), Booleans (bool), None und vier Sammlungstypen — list, tuple, set und dict. Alles andere im Python-Code ist aus diesen plus einer Handvoll weiterer gebaut (bytes, complex, frozenset).

Wie prüfe ich den Typ eines Werts in Python?

Pack ihn in type(): type(42) liefert <class 'int'>, type('hi') liefert <class 'str'>. Für eine echte True/False-Prüfung nimm isinstance(value, int) — das ist flexibler, weil es auch Unterklassen akzeptiert.

Ist Python statisch oder dynamisch typisiert?

Dynamisch typisiert. Eine Variable kann auf einen beliebigen Typ zeigen, und dieselbe Variable kann ihren Typ über die Laufzeit hinweg ändern. Das ist anders als in Sprachen wie Java oder C++, wo du den Typ einer Variablen einmal deklarierst und er sich nicht mehr ändern kann.

Lerne mit Coddy zu programmieren

LOS GEHT'S