Jeder Wert in Python besitzt einen Datentyp. Mit diesem wird festgelegt, welche Operationen man auf den Wert anwenden kann und wie dieser abgespeichert werden soll. Im folgenden werden die numerischen Datentypen, die zum Python Standard gehören, vorgestellt. Ausserdem lernen wir den None Datentyp kennen.
Was du lernst:
- Numerische Datentypen: int, float
- Implizite und explizite Konvertierungen
- None – der “Nichts” – Datentyp
Challenge
Schreibe ein Programm, in dem die Binärzahl 101010 in eine Dezimalzahl umgewandelt und ausgegeben wird.
Gut zu wissen…
In Python existieren für einfache Datentypen die so genannten built-in Objekte, d.h. Objekte, die im Standardsprachumfang enthalten sind. Bei den numerischen Datentypen umfasst dies
- den Datentyp int, der die ganzen Zahlen (z.B. 10, 99, -2358) repräsentiert. Die ganzen Zahlen sind in Python 3 nicht größenbeschränkt. Man könnte also, wenn es die Speicherkapazitäten zulassen, beliebig große Zahlen speichern. Dies ist ein Unterschied zu Python 2.0, wo es zusätzlich noch den Datentyp long int gibt.
- den Datentyp float, für Fließkommazahlen, z.B. 2.3 oder 12345.56 oder -123.33. Wichtig: Nachkommastellen werden mit einem Punkt vom ganzzahligen Teil getrennt.
- den Datentyp complex für die komplexen Zahlen.
Im nächsten Codefenster kannst du verschiedene Datentyp Zuweisungen ausprobieren. Einfach auf Run klicken, um das Ergebnis zu sehen.
Oft müssen Variablen eines Datentyps in einen anderen Datentyp umgewandelt werden. Dies kann implizit oder explizit geschehen. Bei der impliziten Umwandlung übernimmt der Compiler die Umwandlung. Im unten stehenden Beispiel wird die Variable x_int, ursprünglich vom Datentyp Integer in einen Float Datentyp konvertiert. Dies lässt sich auch anhand der type Funktion feststellen, die den Datentyp einer Variable anzeigt.
1 2 3 4 5 |
x_int = 1 y_int = 0.5 z_sum = x_int + y_int print(z_sum) # 1.5 print(type(z_sum)) # <class 'float'> |
Bei der expliziten Umwandlung (type casting) wird im Programm angegeben, dass ein Datentyp in einen anderen umgewandelt werden soll. Dies erfolgt nach der Form (erforderter Datentyp) (Ausdruck). Im nachfolgenden Beispiel werden den Variablen x und y Werte mit dem Datentyp String zugewiesen. float(Ausdruck) wandelt die Werte in einen Float Wert um, so dass die Werte addiert werden können.
1 2 3 4 5 |
# Den Variablen wird ein String zugewiesen x = "5.2" y = "5.3" z = float(x) + float(y)) # Ergebnis 10.5 |
Bei der expliziten Umwandlung kann es zu Informationsverlusten kommen. Würden im vorhergehenden Beispiel x und y in Integer umgewandelt werden, dann würde die Information über die Nachkommastellen verloren gehen und das Ergebnis der Summe wäre 10.
Manchmal soll einer Variable explizit kein Wert zugewiesen werden. Dann wird der Datentyp None verwendet.
1 2 3 |
x=None print(x) # Ergebnis: None |
Für den Spickzettel…
