12 Numerische Datentypen
In diesem Kapitel besprechen wir mit den numerischen Datentypen die erste große Gruppe von Datentypen in Python. Tabelle 12.1 listet alle zu dieser Gruppe gehörigen Datentypen auf und nennt ihren Zweck.
Datentyp | Beschreibung | Veränderlichkeit* | Abschnitt |
---|---|---|---|
int | ganze Zahlen | unveränderlich | 12.4 |
float | Gleitkommazahlen | unveränderlich | 12.5 |
bool | boolesche Werte | unveränderlich | 12.6 |
complex | komplexe Zahlen | unveränderlich | 12.7 |
* Alle numerischen Datentypen sind unveränderlich. Das bedeutet nicht, dass es keine Operatoren gibt, um Zahlen zu verändern, sondern vielmehr, dass nach jeder Veränderung eine neue Instanz des jeweiligen Datentyps erzeugt werden muss. Aus Sicht des Programmierers besteht also zunächst kaum ein Unterschied. Näheres zum Unterschied zwischen veränderlichen und unveränderlichen Datentypen erfahren Sie in Abschnitt 7.3, »Mutable vs. immutable Datentypen«. |
Die numerischen Datentypen bilden eine Gruppe, weil sie thematisch zusammengehören. Diese Zusammengehörigkeit schlägt sich auch darin nieder, dass die numerischen Datentypen viele gemeinsame Operatoren haben. In den folgenden Abschnitten werden wir diese gemeinsamen Operatoren behandeln und im Anschluss daran die numerischen Datentypen int, float, bool und complex detailliert besprechen.
12.1 Arithmetische Operatoren
Unter einem arithmetischen Operator wird ein Operator verstanden, der eine arithmetische Berechnung, beispielsweise eine Addition oder eine Multiplikation, vornimmt. Für alle numerischen Datentypen sind die folgenden arithmetischen Operatoren definiert (siehe Tabelle 12.2).
[»] Hinweis
Zwei Anmerkungen für Leser, die bereits mit einer C-ähnlichen Programmiersprache vertraut sind:
- Es gibt in Python keine Entsprechungen für die Inkrementierungs- und Dekrementierungsoperatoren x++ und x-- aus C.
-
Die Operatoren % und // können folgendermaßen beschrieben werden:
x // y = runden(x / y)
x % y = x - y * runden(x / y)
Python rundet dabei stets ab, während C zur Null hin rundet. Dieser Unterschied tritt nur auf, wenn die Operanden gegensätzliche Vorzeichen haben.
Neben diesen grundlegenden Operatoren gibt es in Python eine Reihe zusätzlicher Operatoren. Oftmals möchte man beispielsweise die Summe von x und y berechnen und das Ergebnis in x speichern, x also um y erhöhen. Dazu ist mit den oben genannten Operatoren folgende Anweisung nötig:
x = x + y
Für solche Fälle gibt es in Python sogenannte erweiterte Zuweisungen (engl. augmented assignments), die als eine Art Abkürzung für die oben genannte Anweisung angesehen werden können.
Operator | Entsprechung |
---|---|
x += y | x = x + y |
x -= y | x = x - y |
x *= y | x = x * y |
x /= y | x = x / y |
x %= y | x = x % y |
x **= y | x = x ** y |
x //= y | x = x // y |
Wichtig ist, dass Sie hier für y einen beliebigen arithmetischen Ausdruck einsetzen können, während x ein Ausdruck sein muss, der auch als Ziel einer normalen Zuweisung eingesetzt werden könnte.