Python Datentypen – Was ist das eigentlich? Als angehender Programmier-Profi ist Dir bestimmt schon einmal der Fehler Type-Error begegnet, was soviel heißt wie Datentypen-Fehler. Er tritt auf, wenn zum Beispiel bei Berechnungen bestimmte Zahlen und Buchstaben nicht zusammenpassen.
Was sind Python Datentypen?
Um zu wissen, was man unter Python Datentypen genau versteht, sollte man die Bedeutung der Begrifflichkeit kennen. Das Wort Datentypen setzt sich dabei aus Daten und Typen zusammen. Indes ist das Wort Daten die Mehrzahl von Datum, was aus dem Lateinischen kommt und „das Gegebene“ bedeutet. Daten sind dementsprechend bestimmte Werte oder Zahlen. Typen, als Mehrzahl von Typ, heißt sowas wie „Gestalt“. Der Ursprung wurzelt dabei im Lateinischen und Griechischen.
Python Datentypen sind somit die Gestalt oder die Erscheinungsart von Werten. Das können entweder ganze Zahlen, Fließkommazahlen, Zeichenketten, Boolesche Variablen, Listen oder Tupel sein. Bitte was für Variablen? Genau das wirst Du Dich nach diesem Artikel nicht mehr fragen.Wenn Du noch mehr rund ums Coden erfahren möchtest, schau doch mal in unserer Rubrik Python vorbei. Indes findest Du dort neben einem Tutorial zur Entwicklungsumgebung PyCharm zudem viele weitere Themen rund ums Coding super einfach erklärt.
Die Datentypen in Python sind daher wichtig, wenn es um Variablen geht, also Datenspeicher oder „Datenbehälter“. Denn für viele Operationen, zum Beispiel Berechnungen, ist der Datentyp relevant. Den Python Download erklären wir Dir übrigens in einem anderen Artikel. Falls Du noch Unterstützung bei der Ausführung grundlegender Computerprogramme benötigst, hilft Dir unser Computerkurs weiter.
Datentypen in Python – Ein Fallbeispiel
Um Dir zu erklären, wie Python Datentypen funktionieren, haben wir ein Beispiel für Dich im Repertoire. Stell Dir dabei vor, Du lädst sechs Freunde zu Dir nach Hause ein: Ida, Felix, Stephanie, Ben, Leo und Thea. Indes besteht ihr euch nach einem langen Tag, an dem Du ihnen Deine neuen Python-Projekte gezeigt hast, eine leckere Pizza. Doch jeder Deiner Freunde möchte eine andere Pizza, weil sie bestimmte Sachen einfach nicht mögen:
- Ida hasst es zu teilen und möchte daher ihre eigene Pizza. Außerdem mag sie keine Paprika.
- Felix weiß dabei genau, wie viel er braucht, um satt zu werden: eineinhalb Pizzas! Aber bitte ohne Salami.
- Stephanie will unbedingt Paprika, Salami, Thunfisch, Oliven, Zwiebeln und außerdem extra Käse auf ihrer Pizza.
- Ben ist allergisch gegen Tomaten und will daher lieber Nudeln essen.
- Leo möchte zudem eine Salami-Pizza und eine Margherita.
- Auch Thea ist besonders hungrig und möchte neben einer Pizza zudem einen Salat und ein Eis.
Als guter Freund bestellst Du natürlich jedem genau das, was er möchte. Hast Du Dir gemerkt, wer was nicht mag? Denn Du musst jedes Gericht dem richtigen Freund zuordnen – sonst ist Ärger vorprogrammiert! Ähnlich ist es dabei bei den Datentypen in Python. Jeder Wert gehört daher automatisch einem bestimmten Datentyp an. Du kannst aber nicht alles mit allen Datentypen machen. Und das schauen wir uns jetzt ganz genau an.
Variablen
Wenn Du die Pizza verteilst, verhält es sich genauso wie in Python: Du teilst einen Wert, in unserem Fall eine bestimmte Pizza, einer Variablen zu. Die Variable ist hierbei dann einer Deiner Freunde. Man sagt so: „Variable ‚pizza_Ida‘ wird der Wert ‚ohne Salami‘ zugewiesen“. Dabei kann man mit Variablen ganz verschiedene Sachen machen, zum Beispiel kannst Du Dir ihren Wert ausgeben lassen. Wenn Du durcheinandergekommen bist bei der Verteilung der Pizza, kannst Du Python mit dem print-Befehl fragen, welche Pizza (welchen Wert) Du ihr gerade gegeben hast. Starte Deine Python IDLE und gib Folgendes in die interaktive Shell ein (falls Du nicht mehr weißt, wie das geht, klicke hier):
>>>pizza_Ida = “ohne Salami”
>>>print(pizza_Ida)
ohne Salami
Du kannst der Variable auch eine Rechnung zuweisen. Lea hat zwei Pizzas bestellt, sodass Du der Variable pizza_Lea die Rechnung 1 + 1 zuweisen könntest. Wenn Du Dir das Ergebnis per print-Befehl ausgeben lässt, weißt Du, wie viele Pizzas Lea nun insgesamt vor hat zu verdrücken. Der Variablenname kann aber nicht nur links vom Gleichheitszeichen stehen, sondern auch rechts:
>>>pizza_Lea = 1
# pizza_Lea hat den Wert 1
>>>pizza_Lea = pizza_Lea + 1
# der Wert wird jetzt um eins erhöht
>>>print(pizza_Lea)
# der ursprüngliche Wert ist jetzt um 1 erhöht
2
Der Wert der Variable pizza_Lea wird dann rechts des Gleichheitszeichens um 1 erhöht.
Welche Python Datentypen gibt es?
Es gibt sechs Datentypen in Python, die Du kennen solltest. Integer, float, string, boolean, list und tuple. Wie gehen sie jetzt nacheinander durch. Damit Du nicht den Überblick verlierst, haben wir die verschiedenen Typen daher übersichtlich zusammengefasst.
Tabelle 1: Übersicht der verschiedenen Datentypen in Python
Bezeichnung | Abkürzung | Bedeutung | Beispiel |
integer | int | ganze Zahl | 3 |
float | float | Fließkommazahl | 3.1 |
string | str | Zeichenkette | “Paprika, Salami“ |
boolean | bool | boolesche Werte (Wahrheitswerte) | True oder False |
list | list | Liste | [“Salami“, “Margherita“] |
tuple | tuple | Tupel (Elemente nicht veränderbar) | (‘Pizza‘,‘Salat‘,‘Eis‘) |
Integer – ganze Zahlen
Zurück zu unserem Beispiel: Ida kannst Du nur mit einer eigenen ganzen Pizza glücklich machen. Alle ganzen Zahlen werden als integer (deutsch: Integer) bezeichnet. Ganze Zahlen… gibt es denn auch halbe? Ja, Zahlen können auch in kleinere Stücke geteilt werden. Das sind dann die Kommazahlen, die Du bestimmt schon mal gesehen hast. Dazu aber weiter unten mehr. Für Integer musst Du Dir nur merken, dass die Zahl kein Komma hat. In Python lautet die Abkürzung für Integer int.
>>>pizza_Ida = 1
>>>print(pizza_Ida)
1
Float – Fließkommazahlen
Wer wollte noch mal eineinhalb Pizzas haben? Stimmt, Felix. Felix verhält sich wie unser float. Float kommt aus dem Englischen und bedeutet „fließen“. Der Name kommt daher, dass ein Komma herumfließt. Bei den Datentypen in Python steht float für eine Zahl mit Komma (vgl. Walerowski 2008: 46). Die Zahlen nach dem Komma sind Teile einer ganzen Zahl. Eineinhalb Pizzas als Kommazahl sind 1,5 Pizzas.
Beachte dabei: Anders als im Deutschen wird im Englischen (und so auch in Python) statt eines Kommas ein Punkt gesetzt.
>>>print(pizzaFelix)
1.5
String – Zeichenkette
Wenn Du Dich erinnerst, wollte Stephanie ganz schön viele Extras. Dabei ist es bei Strings ähnlich, denn es bedeutet auf Englisch „Kette“. Strings sind also Zeichenketten, das heißt aneinandergereihte Buchstaben, Wörter, Sätze, Texte oder Zahlen. Python definiert Zahlen und alles andere als Strings, wenn sie in einfachen oder doppelten Anführungszeichen stehen. Sobald Zahlen als Strings erkannt werden, kannst Du nicht mehr mit ihnen rechnen. Indes wird String im Code mit str abgekürzt.
>>>pizza_Stephanie = “Paprika, Salami, Thunfisch, Oliven, Zwiebeln, Käse“
>>>print(pizza_Stephanie)
Paprika, Salami, Thunfisch, Oliven, Zwiebeln, Käse
Außerdem kannst Du Dir Zeichen eines Strings ausgeben lassen. Das ist hilfreich, wenn Du nicht mehr weißt, was die zweite Zutat auf Stephanies Pizza war. Dafür fängst Du bei 0 an zu zählen bis zu dem Zeichen, das Du wissen möchtest. Bei uns steht es an Stelle 9 und das letzte Zeichen an Stelle 15. Dazwischen kommt ein Doppelpunkt:
>>>pizza_Stephanie = “Paprika, Salami, Thunfisch, Oliven, Zwiebeln, Käse“
>>>print(pizza_Stephanie[9:15])
Salami
DDiesen Vorgang nennt man Slicing. Denn schließlich schneidest Du mit dem Befehl bestimmte Zeichen aus dem Gesamtstring heraus. Willst Du nur ein einzelnes Zeichen wissen, schreibst Du in die Klammer nur die Nummer der entsprechenden Stelle. Hast Du sehr lange Strings, musst Du dafür nicht alle Zeichen von vorne durchzählen, sondern kannst auch von hinten anfangen. Dafür beginnst Du mit dem Zählen bei -1.
>>>pizza_Stephanie = “Paprika, Salami, Thunfisch, Oliven, Zwiebeln, Käse“
>>>print(pizza_Stephanie[-3])
ä
Zudem können mehrere Strings zusammengefasst werden. Dafür setzt Du zwischen die Strings, die zusammengefügt werden sollen, ein +.
>>>salami_pizza = “Salami” + “-“ + “Pizza”
>>>print(salami_pizza)
Salami-Pizza
Außerdem kannst du ihn in mehrere Teile zerlegen. Dabei hilft die Funktion split(). Indes setzt Du in die Funktion das Zeichen ein, bei dem die Trennung erfolgen soll. Das kann auch ein Trennzeichen sein, zum Beispiel ein Leerzeichen.
>>>print(‘Guten Appetit’.split(‘ ‘))
[‘Guten’, ‘Appetit’]
Boolean – boolesche Werte
Die Bezeichnung boolean leitet sich von dem Namen Goerge Boole ab, einem englischen Mathematiker. Damit ist laut der Technischen Universität Wien ein Ausdruck gemeint, der entweder True (deutsch „wahr“) oder False (deutsch „falsch“) sein kann. Damit sind folglich Wahrheitswerte gemeint. Wenn Ben also lieber Nudeln möchte, ist die Variable (ein austauschbarer Wert) „Pizza“ bei ihm False. Im Code wird für Boolean die Abkürzung boole verwendet.
>>>pizza_Ben = False
>>>print(pizza_Ben)
False
Die letzten zwei Datentypen in Python sind etwas anders, da sie zusammengesetzte Typen sind. Was das genau bedeutet, siehst Du jetzt.
List – Liste
In einer Liste kannst Du zudem mehrere Elemente (Werte) unterbringen. Diese Elemente können dabei ganz verschiedene Dinge sein, zum Beispiel Salami-Pizza und Margherita. Du kannst in Listen nicht nur Buchstaben oder Wörter, sondern auch Zahlen schreiben. Setze sie in eine eckige große Klammer. Jedes Element steht in Anführungszeichen.
>>>pizza_Leo = [“Salami“, “Margherita“]
>>>print(pizza_Leo)
[‘Salami‘, ‘Margherita‘]
Die Elemente einer Liste können zudem verändert werden. Falls Leo sich umentscheidet und lieber eine Peperoni-Pizza möchte, ist das kein Problem. Wie bei Strings kannst Du Dir auch einzelne Elemente einer Liste ausgeben lassen. Welche Pizza hat Leo noch mal nach der Salami-Pizza bestellt? Fang dabei wieder bei 0 zu zählen an, bis zu dem Element, das Du wissen möchtest. Hierbei werden die Elemente und nicht wie bei Strings die einzelnen Zeichen gezählt.
>>>pizza_Leo = [“Salami“, “Margherita“]
>>>print(pizza_Leo[1])
Margherita
Tuple – Tupel
Tupel sind eine bestimmte Art Liste. In unserem Beispiel Pizza, Salat und Eis. Die Elemente stehen dabei in einfachen Anführungszeichen und werden von einer großen Klammer umgeben. Diese Werte kannst Du nicht mehr verändern, wenn Du sie einmal festgelegt hast. Folglich kann keiner kann das Eis in Theas Bestellwunsch heimlich durch einen Apfel austauschen. Weitere Informationen findest Du dabei in dem Tutorial der Universität Linz.
>>>pizza_Thea = (‘Pizza‘, ‘Salat‘, ‘Eis‘)
>>>print(pizza_Thea)
(‘Pizza‘, ‘Salat‘, ‘Eis‘)
Wie lassen sie sich abfragen?
Jetzt hast Du die verschiedenen Datentypen kennengelernt und weißt nun, wie Python bestimmte Werte benennt und einordnet. Der Typ des Wertes einer Variablen ist dabei nicht fix, sondern veränderbar. Dafür musst Du aber nichts machen. Indeswird er immer automatisch von Python erkannt. Das hängt nur davon ab, wie der Wert der Variable aussieht. Willst Du den Datentyp eines Wertes abfragen, gib einfach Folgendes in die interaktive Shell ein:
>>>pizza = 6.5
>>>print(type(pizza)
Python wird das hier ausspucken:
class ‚float‘
In der Ausgabe siehst Du, welche Klasse (also welchen Datentyp) Deine Variable hat (vgl. Bonacina 2018: 53). Wenn Du Dir also nicht sicher bist, mit welchen Datentypen in Python Du arbeitest, kannst Du Dir das einfach mit dem Befehl print(type(variable)) ausgeben lassen. Für Variable setzt Du den Namen der Variable ein, deren Typ Du wissen möchtest.
Anhand des Befehls isinstance(x,typ) kannst Du überprüfen, ob eine Variable einen bestimmten Datentyp hat. Für x setzt Du den Namen der Variable ein und für typ den Datentyp, auf den Du diese Variable überprüfen möchtest. Bei einer Übereinstimmung wird Dir True (wahr) ausgegeben, andernfalls wird False (falsch) zurückgegeben.
>>>pizza = 6.5
>>>print(isinstance(pizza, str))
False
Wie werden Datentypen in Python umgewandelt?
Der Datentyp eines Wertes kann aber auch ganz einfach aktiv umgewandelt werden. Dazu baust Du Dir eine kleine Funktion. Indes schreibst Du in die Klammern der Funktion den Wert. Fragt Felix nach dem float-Wert von Leas Pizza, kannst Du in Python Folgendes eingeben:
>>>pizza_Lea = 2
>>>print(float(pizza_Lea))
2.0
Du kannst einer Variablen zudem ein neues Objekt hinzufügen, das einen anderen Datentyp hat. Der Typ wird dann ganz automatisch verändert. Das bedeutet für unser Pizzabeispiel, dass Du Lea noch ein Extra-Stück zuweisen kannst.
>>>pizza_Lea = 2
# Python erkennt den Typ int
>>>pizza_Lea = 2 + 0,25
# Python ändert den Typ auf float
>>> print(pizza_Lea)
2,25
>>>pizza_Lea = “zweieinviertel”
# hier wird der Typ auf str gesetzt
>>>print(pizza_Lea)
zweieinviertel
Fünf Deiner Freunde haben sich Pizza gewünscht. Sie haben also alle den Wert „Pizza“. Das heißt, dass mehrere Variablennamen auf den gleichen Wert verweisen können.
Du kannst eine Variable beliebig benennen. Dabei kann sie die Groß- und/oder Kleinbuchstaben von A bis Z beinhalten, einen Unterstrich (_) oder die Zahlen 0 bis 9. Der Unterstrich dient dabei als Worttrenner. Bei den Zahlen musst Du darauf achten, dass Dein Variablenname nicht mit 0 beginnt. Ein paar Namen allerdings darfst Du Deiner Variable nicht geben, da diese schon für andere Befehle benutzt werden.
Indes haben wir alle Datentypen in Python unter die Lupe genommen. Du hast die 6 Standardtypen kennengelernt und gesehen, dass Python den Typ automatisch erkennt. Außerdem hast Du einen Befehl kennengelernt, mit dem Du einen Datentyp ermitteln kannst. Zuletzt haben wir uns zudem angeschaut, wie man Datentypen umwandeln kann. Ob Buchstaben, Zahlen oder Listen: Du weißt ab sofort, mit welchem Datentyp Du es zu tun hast. Darauf erst mal eine Pizza!
Literatur
Bonacina, Michael (2018): Python 3: Programmieren für Einsteiger. Landshut: BMU.
Walerowski, Peter (2008): Python: Grundlagen und Praxis. München: Addison Wesley.
FAQs zu Python Datentypen
In Python gibt es einige Datentypen. Doch um mit dem Coden zu beginnen, brauchst Du vorerst hauptsächlich die im Text behandelten 6 Standardtypen. Denn mit diesen Du schon eine Menge Projekte in die Tat umsetzen. Wie wäre es denn mit einer Python For Schleife?
Werte, die Du in Variablen abspeicherst, können sich zudem stark unterscheiden. Indes gibt es zum Beispiel Zahlen, Wörter oder Listen, die alle unterschiedlich gespeichert werden müssen. Daher sollte man sich vorher überlegen, wie man einen Wert abspeichern möchte. Dabei helfen Dir auch Python Dictionaries.
Dein Wissen über die Eigenschaften der Datentypen kann Dir dabei helfen, den Speicherplatzverbrauch und die Schnelligkeit Deines Programms zu optimieren. Ein integer ist zum Beispiel kleiner als ein float, der wiederum weniger Speicherplatz benötigt als ein long.
Durch die Funktion „type()“ kannst Du abfragen, welchen Datentyp die Variable aufweist. Die Überprüfung ist daher wichtig, da sich der Datentyp durch Funktionen oder Rechenanwendungen verändern kann. Indes haben Fehler keine Chance.
Der Python Datentyp „float“, auch Fließkommazahlen genannt, steht beim Coden für eine Zahl mit Komma. Dabei gibt es verschiedene Varianten, die sich je nach benötigter Größe unterscheiden: float mit 32 Bit, double mit 64 Bit und long double mit 80 Bit. Je höher die Bitanzahl, desto mehr Nachkommastellen kann der Datentyp speichern. Dabei sind die genauen Wertebereiche von System zu System unterschiedlich.