15.5. Primitive Datentypen in Python?#

Jetzt kommen wir zu einer Besonderheit in Python, welche Sie als Anfänger erst einmal ignorieren können. Dennoch möchten wir Sie Ihnen nicht vorenthalten und auch kein Halbwissen vermitteln! Wir haben es auch bereits angesprochen.

Sie vermuten wohl zurecht, dass byte, int, long, float, bool primitive Datentypen sind und Sie lägen bei vielen anderen Programmiersprachen richtig, doch in Python gibt es gar keine primitiven Datentypen. Das ist für Anfänger verwirrend! Wie kann es keine primitive Datentypen geben? Irgendwann muss sich doch ein Datentyp nicht mehr weiter zerlegen lassen? Und weshalb ist eine ganze Zahl int kein primitiver Datentyp?

Datentypen in Python

Es gibt in Python keine primitiven Datentypen!

Python kapselt die primitiven Datentypen für uns Programmierer*innen. Zu unserem eigenen Schutz können wir auf diese nicht direkt zugreifen und mit ihnen nicht direkt arbeiten. Hinter dem Datentyp int verbirgt sich ein atomarer Datentyp, der es uns leichter macht mit ganzen Zahlen umzugehen. Implementiert ist dieser Datentyp in der Programmiersprache C++. Python ruft am Ende des Tages C++-Code auf. Die Implementierung von int findet sich in den folgenden Dateien (bitte lassen Sie sich davon nicht abschrecken, Sie müssen diesen Code nicht verstehen!)

In Python benötigt eine ganze Zahl int nicht immer den gleichen Speicherbereich! Deshalb ist es, anders als in vielen anderen Sprachen, in Python möglich mit sehr großen ganzen Zahlen zu rechnen. Wäre int ein primitiver Datentyp, wie etwa in Java, C/C++, so würde ein int Wert immer gleich viel Speicherplatz belegen. Ob im Speicher eine 5 oder eine 1000 steht ist für den Speicherplatz den diese Werte verbrauchen egal.

Eine Zeichenkette str ist in Python ein zusammengesetzter Datentyp. Wir haben keine Möglichkeit auf den Datentyp der das einzelne Zeichen repräsentiert zuzugreifen. D.h., anders als in vielen anderen Sprachen gibt es in Python keinen Datentyp für ein einzelnes Zeichen char. Ein einzelnes Zeichen ist in Python eine Zeichenkette der Länge 1.