Egal welche Programmiersprache du verwendest, früher oder später begegnet dir der Begriff der Datentypen. Es gibt viele verschiedene Datentypen und diese unterscheiden sich auch von Programmiersprache zu Programmiersprache. Hier erfährst du welche, meiner Meinung nach, die vier wichtigsten Datentypen in der Programmiersprache Python sind.
In diesem Beitrag gehts es deshalb um strings (Zeichenketten), integers (ganze Zahlen), floats (Gleitkommazahlen) und booleans (Boole’sche Werte). Natürlich versuche ich jeden dieser vier Datentypen verständlich zu erklären und Beispiele dafür zu geben.
Was sind Datentypen?
Fangen wir also erstmal mit der Frage an, was überhaupt Datentypen sind. Im Kontext der Programmiersprachen sind Datentypen Wertebereiche, die zu einer Einheit zusammengefasst sind und auf denen bestimmte Operationen definiert sind (Quelle: wikipedia). Was? Geht das auch einfacher?
Allgemein gesagt können Daten Kombinationen aus Buchstaben, Zahlen, Symbolen, Bildern und noch vielem mehr sein. Beispielsweise sind Informationen über dich selbst, wie Alter, Name oder Geburtstag, Daten. Im Internet haben wir viele Nutzernamen und Passwörter, das sind auch alles Daten.
Damit der Computer weiß, was genau er mit allen möglichen Zahlen, Buchstaben etc. machen soll, werden diese Daten in „Gruppen“ zusammengefasst.
Wobei jede „Gruppe“ nur diejenigen Zahlen oder Buchstaben etc. umfasst, die gewisse gemeinsame Eigenschaften besitzen. Außerdem sollte dieses Einteilen in „Gruppen“ möglichst logisch und vor allem eindeutig sein.
Ich schreibe „Gruppen“ in Anführungsstrichen, weil es sich nicht im mathematischen Sinn um Gruppen handelt. Ich möchte damit nur klar machen, dass Daten nach bestimmten Eigenschaften zusammengefasst werden können.
Nehmen wir uns mal die Zahlen, die wir so aus dem Alltag kennen. Es gibt Dezimalzahlen, wie zum Beispiel oder . Diese gehören alle in eine gemeinsame Gruppe.
Wörter, wie Apfel, Hallo, gelb oder laufen gehören definitiv in eine andere Gruppe. Das sind also zwei verschiedene Datentypen, Zahlen und Wörter. Klar, wir wollen ja auch verschiedene Sachen damit machen. Mit Zahlen will man meistens rechnen und Wörter dienen zur Kommunikation, man kann sie vergleichen oder beispielsweise zusammenfügen.
Damit erklärt sich der Begriff der Operationen. Typische Operationen, die man mit Zahlen anstellen kann, sind die Rechenarten Plus, Minus, Mal, Geteilt.
Fassen wir zusammen:
Daten werden verschiedenen Datentypen zugeordnet. Auf jedem Datentyp werden sinnvolle Operationen definiert.
Also ganz grob haben wir jetzt verstanden, Daten sind irgendwie unterschiedlich und werden deshalb auch unterschiedlich behandelt. Und für jeden Datentyp gibt es andere Anweisungen, wie zum Beispiel Rechenoperationen. Also Vorschriften, was man mit dem jeweiligen Datentyp anstellen kann. In diesem Beitrag bespreche ich zwar die vier wichtigsten Datentypen, aber auf die zugehörigen Operationen gehe ich nicht ein.
Datentypen in Python
In Python gibt es verschiedene Datentypen, die wir gleich kennenlernen werden. Das besondere an Python ist, dass die Programmiersprache automatisch erkennt um welchen Datentyp es sich handelt.
Beim Definieren einer Variablen müssen wir deshalb nicht, wie bei anderen Programmiersprachen häufig, zuerst deklarieren um was für einen Datentyp es sich handeln soll.
Geben wir doch mal ein Wort ein, wie z.B. „Hallo“. Ein Wort ist keine Zahl, sondern eine Zeichenkette. Das nennt man string. Genaueres dazu im nächten Absatz. Außerdem geben wir eine Kommazahl ein, zum Beispiel.
Für diese beiden Eingaben möchte ich jetzt wissen, was ihnen für ein Datentyp von Python zugeordnet wurde. Dazu verwende ich die type-Funktion.
Type-Funktion in Python
Mit der Funktion type() kann ich mir von Python sagen lassen, um was für einen Datentyp es sich handelt. Auf dem Bild links siehst du, dass ich Python frage um was für einen Datentyp es sich bei ‚Hallo‘ handelt. Gebe ich type (‚Hallo‘) ein, gibt mir Python <class ’str‘> zurück. Also handelt es sich, wie vermutet, um einen string. Alles richtig gemacht, Python hat verstanden was ich möchte.
Bemerkung: Tatsächlich steht hier als Ergebnis „class“, wenn wir die type()-Funktion verwenden. Das ist ein Begriff aus dem objektorientierten Programmieren. Ganz allgemein gesagt handelt es sich zum Beispiel um die Klasse (class) „string“ und das Wort ‚Hallo‘ ist ein Objekt dieser Klasse. Das ist aber etwas Fortgeschritten, wir gehen hier nicht weiter darauf ein.
Auf dem rechten Bild habe ich eine Kommazahl, also eine Gleitkommazahl sprich float, eingegeben. Auch hier frage ich den Datentyp der Eingabe 3.2 mit der type-Funktion ab und Python gibt mir zurück um was es sich für einen Typ handelt.
Achte dabei darauf, dass wir anstatt einem Komma , einen Punkt . setzen. Im Englischen verwendet man Punkt anstatt Komma bei Dezimalzahlen.
Die vier wichtigsten Datentypen in Python
Nun widmen wir uns den verschiedenen Datentypen, die uns beim Programmieren mit Python begegnen. Beziehungsweise denjenigen, die meiner Meinung nach die vier wichtigsten Datentypen für den Einstieg in Python sind.
Zeichenkette – string
Zuerst widmen wir uns den sogenannten strings. String heißt auf deutsch übersetzt einfach Kette. Man bezeichnet also irgendwelche Ketten, die aus Ziffern, Buchstaben oder auch Sonderzeichen bestehen als strings.
Jeder Satz „Hello World!“, jedes Wort „Apfel“ oder auch ein Nutzername wie „Schmetterling123“ sind strings.
Mit strings kann man nicht so rechnen, wie mit Zahlen. Unser Taschenrechner kann wahrscheinlich nichts mit „Schmetterling123“ anfangen.
Dennoch ist dies der allerwichtigste Datentyp, finde ich. Der Benutzer und der Computer müssen miteinander kommunizieren können.
Die meisten Computer sind nach der sogenannten von-Neumann-Architektur aufgebaut. Eine Eigenschaft eines Computers nach dieser Architektur ist es, dass Ein- und Ausgabegeräte an einen Computer angeschlossen werden können. Als Beispiel einfach an einen Monitor (Ausgabe-) und eine Tastatur (Eingabegerät) denken.
Der Benutzer „kommuniziert“ mit dem Computer über Ein- und Ausgabegeräte und deshalb benötigen wir strings, damit wir überhaupt Dateinamen, Passwörter und vieles mehr eingeben und anzeigen lassen können.
In Python geben wir strings immer mit Anführunsstrichen ein. Dabei ist es egal, ob wir ein, zwei oder drei Anführungsstriche verwenden.
Auf dem Bild siehst du was ich meine. Wenn ich nach dem orangenen Pfeil Schmetterling 123 eingebe, egal ob mit ein, zwei oder drei Anführungsstrichen, gibt Python mir eine Zeile später ‚Schmetterling123‘ mit einem Anführungszeichen zurück. Egal wie viele ich verwendet habe.
Merke:
Strings (Zeichenketten) werden ich Python mit Anführungsstrichen eingegeben.
Ganze Zahl – integer
Der nächste Datentyp, den ich dir vorstellen möchte, beinhaltet die ganzen Zahlen (integers). Ganze Zahlen sind alle natürlichen Zahlen, also und so weiter. Also auch sehr große Zahlen wie . Zu den ganzen Zahlen gehört außerdem die Null 0 und alle negativen ganzen Zahlen, wie etc.
Die Eingabe in Python ist hier total einfach. Wenn ich eine Zahl ohne Komma eingebe, dann weiß Python sofort, dass es sich um eine ganze Zahl, also integer handelt.
Ich habe abgefragt, um was für einen Typ es sich bei den Zahlen und handelt. Die Antwort lautet <class ‚int‘>, also wie zu erwarten um ganze Zahlen/integers (kurz: int).
Länge der Integers in Python
In der aktuellen Version von Python, bzw. ab Python 3, gibt es keine maximale Länge für integers. Die Zahl kann so lang sein, wie du möchtest, nur der Speicher deines Computers muss so eine riesige Zahl zulassen. Diese Informatik kann man mit dem module sys herausfinden, aber dazu in einem anderen Beitrag mehr.
Merke:
Integers sind ganze Zahlen, also positive und negative Zahlen ohne Komma oder Null. Sie werden in Python mit int abgekürzt.
Ab Python 3 können integers so lang sein, wie dein Computerspeicher hergibt, es gibt keine Unterscheidung mehr in integer und long integer wie es bis Python 2.7 der Fall war.
Gleitkommazahl – float
Wie der Name schon sagt handelt es sich hier um Kommazahlen. Da ich jetzt hier keinen Matheexkurs machen möchte, werde ich nicht erklären warum diese Zahlen Gleitkommzahlen und nicht einfach Dezimalzahlen heißen. Gleitkommazahlen heißen auf englisch float(ing-point number), deshalb auch die entsprechende Bezeichnung in Python.
Kommazahlen bekommen im Englischen einen Punkt und kein Komma. Also schreibe 3.2 anstatt 3,2.
Auch hier ein paar Beispiele für floats in Python.
Alle Zahlen sind offensichtlich Kommazahlen und als Typ wird mir auch jedes Mal <class ‚float‘> zurückgegeben.
Achte mal auf die letzte Zahl: 2.0 – Das ist doch eigentlich eine ganze Zahl, 2.0 und 2 sind das Gleiche. Aber so weit denkt Python nicht. Sobald du ein Komma hinschreibst, egal ob notwendig oder nicht, handelt es sich für Python um eine float. Achte also bei den Zahlen, die du eingibst oder bei Zahlen, die dir als Ergebnisse von Rechnungen in Python begegnen, ob sie ein Komma haben oder nicht.
Die größte Gleitkommazahl/float in Python
Mit dem module sys bekomme ich die größte Gleitkommzahl, die ich in Python verwenden kann:
Die Zahl ist 1.7976931348623157e+308 , also . Das ist eine sehr große Zahl mit 309 Stellen.
Floats sind grob gesagt alle Kommazahlen. Anstelle eines Kommas verwendet man in Python einen Punkt zur Eingabe.
Boole’scher Wert – boolean
Der letzte der vier wichtigsten Datentypen, den ich in diesem Beitrag besprechen möchte ist der sogenannte boolean. Auf deutsch Boole’scher Wert. Bennant sind diese nach dem englischen Mathematiker George Boole (wikipedia), auf dessen Arbeit wir hier nicht näher eingehen.
Im Grunde genommen gibt es die zwei Boole’schen Werte True and False.
Eine Aussage ist entweder wahr oder falsch, genau so kann Strom entweder fließen oder nicht. Deshalb sind diese Werte bei der Arbeit mit Digitalrechnern wie wir sie verwenden maßgeblich.
Die Aussage 3=5 ist zum Beispiel falsch, also False. Klar, die beiden Zahlen sind offensichtlich nicht die gleichen. Hier ein Beispiel:
Ich verwende == um die beiden Zahlen 3 und 5 bzw 2 und 2 zu vergleichen. == ist in Python wie das Gleichheitszeichen in Mathe zu verstehen. Ich gebe also ein 3 == 5 und bekomme False als Antwort. Bei 2==2 bekomme ich True als Antwort, wie wir es erwartet haben.
Bei diesen beiden Vergleichen der Zahlen handelt es sich also um Boole’sche Werte.
Ich gebe zu, dieses Konzept ist etwas schwierig zu verstehen wenn man es das erste Mal sieht. Was genau man mit diesen Werten alles machen kann erkläre ich dir in einem zukünftigen Beitrag.
Hier ist es mir nur wichtig für meine Aufzählung, dass du den Begriff schonmal gehört hast.
Python erkennt also, wann es sich um einen Boole’schen Wert handelt. Entweder ich gebe einfach selbst die Werte True oder False ein (Achtung: Anfangsbuchstabe groß) oder ich gebe eine Aussage ein und Python erkennt dann den Wert der Aussage als True oder False.
Mit der Type-Funktion frage ich die Datentypen ab und erhalte <class ‚bool‘>, also boolean/Boole’scher Wert.
Bei booleans handelt es sich um die Werte True and False, diese werden in Python mit großen Anfangsbuchstaben geschrieben.
Fazit: Warum sind das die wichtigsten Datentypen in Python?
In diesem Beitrag haben wir strings, integers, floats und booleans kennengelernt.
Warum habe ich mich genau für diese vier entschieden als die „wichtigsten“ Datentypen in Python?
Denken wir mal über hundert Jahre zurück. Warum sollte denn irgendjemand einen Computer erfinden wollen? Wie der Name schon sagt (to compute = rechnen (engl.)) soll ein Computer Berechnungen automatisieren. Natürlich nicht nur Alltagsrechnungen, sondern vor allem auch komplexe Rechnungen wie Buchhaltung oder das Lösen mathematischer Gleichungen. Ein Computer soll also rechnen können.
Für mich sind deshalb die Datentypen integer (ganze Zahl) und float (Gleitkommazahl) die wichtigsten Datentypen, weil sie die grundlegendsten sind.
Als nächstes kommen die strings (Zeichenketten). Wir haben Passwörter, Benutzernamen, Dateinamen, Pfade und Eingabe-/Ausgabeparameter. Deshalb brauchen wir natürlich strings, um mit unserem Computer sozusagen „kommunizieren“ können. Nahezu alle Computer verfügen heutzutage über Ein- und Ausgabegeräte, wie Tastatur, Maus, Monitor etc.
Deshalb sind strings für mich unerlässlich. Ohne zu wissen was strings sind, kann ich nicht programmieren lernen.
Zu guter letzt habe ich mich für die booleans (Boole’sche Werte) entschieden, nämlich True and False. Da es sich bei unseren Rechnern um Digitalrechner und nicht mechanische Rechner handelt, brauchen wir eine Unterscheidung zwischen zwei Zuständen – Strom fließt, Strom fließt nicht – True, False – 1 und 0.
Ich gebe zu, das Konzept der booleans scheint dem Laien sicherlich abstrakt. Aber ich finde es wichtig von Anfang auch mit den schwierigeren Konzepten konfrontiert zu werden.
Weitere Datentypen
Weitere Datentypen mit denen du dich befassen solltest, wenn du mit den vier Datentypen aus diesem Beitrag bereits sehr vertraut bist sind: Listen, Tupel oder Dictionaries.
Diese sind für mich zwar nicht die obersten vier wichtigsten Datentypen, aber fast die wichtigsten. ☺️
Ich hoffe du hast etwas dazugelernt mit diesem Beitrag. Mein Ziel ist es dir die Grundlagen zu vermitteln, damit du selbst weiterlernen kannst. Wer nicht weiß nach was er sucht wird auch nicht fündig.
Am Besten setzt du dich direkt hin und versucht, ob du selbst in der Lage bist verschiedene Datentypen in Python zu verwenden. Falls du noch gar nicht weißt, wie du überhaupt eine Pythondatei erstellst, dann findest du hier meine weiteren Artikel zum Thema Python.
Quelle für diesen Beitrag: Python Documentation – The Python Standard Library – Built-In Types andere Quellen im Text sichtbar gemacht.