EMZETT.
Login

Kurz: Jeder Wert in Python hat einen Datentyp. Der Typ bestimmt, was man mit dem Wert tun kann: Zahlen kann man addieren, Texte aneinanderhängen, Listen durchlaufen. Den Typ eines Wertes zeigt dir type().

Teil des Kurses Python

Kapitel 5 von 44 im Kurs Python. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Jeder Wert in Python hat einen Datentyp. Der Typ bestimmt, was man mit dem Wert tun kann: Zahlen kann man addieren, Texte aneinanderhängen, Listen durchlaufen. Den Typ eines Wertes zeigt dir type().

print(type(42))
print(type(3.14))
print(type("Hallo"))
print(type(True))
print(type([1, 2, 3]))
print(type((1, 2)))
print(type({"a": 1}))
print(type({1, 2}))
print(type(None))

Ausgabe:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'tuple'>
<class 'dict'>
<class 'set'>
<class 'NoneType'>

Die eingebauten Grundtypen

TypBeispielBedeutung
int42, -7ganze Zahl (beliebig groß)
float3.14, 2.5e3Kommazahl
complex2 + 3jkomplexe Zahl
str"Hallo"Text (Zeichenkette)
boolTrue, FalseWahrheitswert
list[1, 2, 3]veränderliche Liste
tuple(1, 2)unveränderliches Tupel
dict{"a": 1}Zuordnung Schlüssel → Wert
set{1, 2, 3}Menge ohne Doppelte
NoneTypeNone”kein Wert”

Listen, Tupel, Dictionaries und Mengen behandeln wir in eigenen Kapiteln.

Typ prüfen

isinstance(wert, typ) fragt, ob ein Wert zu einem Typ gehört. Das ist besser als den Typ mit == zu vergleichen:

x = 5
print(isinstance(x, int))
print(isinstance(x, str))
print(isinstance(True, int))   # bool ist eine Unterart von int

Ausgabe:

True
False
True

Typen umwandeln

Mit den Funktionen int(), float(), str(), bool(), list() und anderen wandelst du Werte um:

print(int("42") + 1)
print(float("3.5") * 2)
print(str(100) + " Euro")
print(int(7.9))        # schneidet ab, rundet nicht
print(list("abc"))

Ausgabe:

43
7.0
100 Euro
7
['a', 'b', 'c']

Passt der Inhalt nicht, gibt es einen Fehler:

int("zwölf")

Fehlermeldung:

Traceback (most recent call last):
  File "beispiel.py", line 1, in <module>
    int("zwölf")
ValueError: invalid literal for int() with base 10: 'zwölf'

Wahr oder falsch: Truthiness

In Bedingungen behandelt Python jeden Wert als wahr oder falsch. Falsch sind: False, None, 0, 0.0, der leere Text "" und leere Sammlungen ([], (), {}, set()). Alles andere ist wahr.

for wert in [0, 1, "", "a", [], [0], None]:
    print(repr(wert), "->", bool(wert))

Ausgabe:

0 -> False
1 -> True
'' -> False
'a' -> True
[] -> False
[0] -> True
None -> False

Veränderlich oder nicht?

Einige Typen kann man nach dem Anlegen ändern (mutable: Liste, Dictionary, Menge), andere nicht (immutable: Zahlen, Texte, Tupel). Das spielt eine Rolle, wenn du Werte an Funktionen weitergibst oder kopierst; dazu später mehr.

Hinweis

Wenn du bei einem Wert nicht weißt, was er ist: print(type(wert)) und print(repr(wert)) sind deine besten Freunde beim Fehlersuchen.

Merke

  • type(x) zeigt den Typ, isinstance(x, int) prüft ihn
  • Umwandeln: int(), float(), str(), bool(), list()
  • Falsch sind False, None, 0, leerer Text und leere Sammlungen
  • int(7.9) ergibt 7 (abschneiden), nicht 8
  • veränderlich: list, dict, set; unveränderlich: int, float, str, tuple

Übungsaufgabe

Wandle den Text "123" in eine Zahl um, addiere 1 und gib das Ergebnis samt Typ aus.

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Variablen

Weiter: Zahlen und Rechnen

Alle Kapitel: Python im Überblick