Zum Inhalt springen

Datentypen und Typisierung – einfach erklärt!

  • Daten

In der Programmierung und für Datenbanken werden Datentypen genutzt, um die Art einer Variablen anzugeben. Dadurch wird beispielsweise auch bestimmt, welche Operationen mit diesen Variablen ausgeführt werden können und welche zu Fehler führen. Wenn man beispielsweise einen Text abspeichert, sind mathematische Operationen, wie Additionen, nicht möglich.

Was sind Datentypen?

In der Informatik definiert man Datentypen für die eine gewisse Menge an Operationen ohne Probleme möglich ist. Mit allen Daten, die einem Datentyp angehören, können diese Operationen durchgeführt werden und es ist sichergestellt, dass keine Fehlermeldung auftritt.

Für den Datentyp „Integer“ (zu Deutsch: Ganzzahl) sind beispielsweise die Operationen „Addieren“ und „Subtrahieren“ definiert. Das heißt, dass wenn wir zwei beliebige Elemente des Datentyps „Integers“ haben, dann können diese aufsummieren oder subtrahieren und es wird kein Fehler auftreten. Zwei Objekte vom Datentyp „Text“ hingegen können diese Operation nicht durchführen, da dies für den Datentypen nicht definiert ist.

Wofür nutzt man Datentypen?

Die Nutzung von Datentypen ermöglicht es in der Programmierung gewisse Operationen zwischen mehreren Variablen durchzuführen. Für jeden Datentyp sind gewisse Berechnungen oder Transformationen definiert, die mit einer anderen Variablen desselben Datentyps ohne Probleme ausgeführt werden können.

Um sicherzugehen, dass es nicht zu Laufzeitfehlern bei Operationen mit mehreren Variablen kommen kann, benutzt man die sogenannte Typisierung.

Was ist die Typisierung in der Informatik?

Als Typisierung bezeichnet man in der Informatik die Möglichkeit Wertebereiche einer Variablen innerhalb einer Programmiersprache einschränken zu können. Eine Programmiersprache, welche über ein Typsystem verfügt, nennt man dabei typisiert. Diese Systeme lassen sich in insgesamt drei Klassen einordnen, abhängig von der Art der Typisierung:

  • Stark vs. Schwach: Hierbei geht es darum, wie streng die jeweilige Programmiersprache die Typen unterscheidet. Eine strenge Typisierung lässt zum Beispiel keine Konvertierung von Variablen in einen anderen Datentyp zu, nachdem die Variable definiert wurde.
  • Dynamisch vs. Statisch: Diese Dimension handelt davon, wann die Typisierung des Objektes stattfindet. In Python ist es beispielsweise so, dass die Variable selbst keinen Datentyp hat, sondern lediglich das Objekt, das der Variablen zugewiesen hat. Das bezeichnet man als dynamische Typisierung. Dadurch werden jedoch auch Fehler aufgrund von inkompatiblen Datentypen erst erkannt, wenn man das gesamte Programm startet. Bei der statischen Typisierung (beispielsweise in Java) muss schon während dem Programmieren der Datentyp der Variablen explizit festgelegt werden.
  • Explizit vs. Implizit: Diese Dimension ist eng verwoben mit der statischen/dynamischen Typisierung. Es geht darum, ob der Datentyp einer Variablen bereits bei der Definition explizit festgelegt wird, oder nur implizit über die Zuordnung des Objektes erkennbar ist.

Welche Datentypen gibt es?

Je nach Programmiersprache oder Datenbank sind verschiedene Arten von Datentypen definiert, weshalb sich auch die Bezeichnungen leicht unterscheiden können. Im Grunde sind die allgemeinen Datentypen zwischen verschiedenen Systemen und Programmiersprachen jedoch sehr ähnlich.

Integer (int)

Integers werden für Ganzzahlen genutzt, also für positive und negative Zahlen ohne Nachkommastellen, beispielsweise -841 oder +903.

Floating Point (Float)

Der Float Datentyp wird auch für numerischen Variablen genutzt, die jedoch im Gegensatz zu Integers auch Nachkommzahlen haben, z.B. -130,45 oder +923,58923.

String

Der String wiederum bezeichnet textuelle Variablen, dessen Werte in Anführungszeichen, also “ “ oder ‚ ‚, abgespeichert werden. Der String kann neben Zeichenketten bestehend aus Buchstaben auch Zahlen oder andere Symbole abspeichern. Diese werden jedoch nicht als Zahlen interpretiert, wodurch mit ihnen auch keine Rechenoperationen möglich sind.

Boolean

Boolesche Datentypen werden genutzt, wenn eine Variable genau einen von zwei möglichen Werten annehmen kann. In vielen Fällen werden entweder die Wertepaare 0/1 oder wahr/falsch genutzt.

Datetime

Der Datetime Datentyp speichert Werte ab, die eine Datumsangabe inklusive einer Zeitangabe beinhalten, wie beispielsweise 2021-09-12 15:23:41. Das Format, welches hierfür genutzt wird, ist also JJJJ-MM-TT hh:mm:ss.

Timestamp

Der Timestamp ist eine weitere Art, um zeitliche Informationen in einer Variablen abzuspeichern. Am häufigsten kommt dabei der sogenannte Unix Timestamp zum Einsatz, der misst, wie viele Sekunden (je nach Format auch Millisekunden) seit dem 01.01.1970 vergangen sind.

Character

Dieser Datentyp wird verwendet um einzelne Buchstaben, Symbole, Zahlen etc. abspeichern zu können. Es ist auch möglich ein einzelnes Leerzeichen abzuspeichern.

Warum sollten Sie sich als Programmierer mit Datentypen beschäftigen?

In vielen Programmiersprachen sind Datentypen explizit, so dass bereits bei der Definition einer Variablen angegeben werden muss, welchen Datentyp sie hat. In diesen Fällen hat der Programmierer also keine andere Wahl, als sich mit Datentypen zu beschäftigen.

Allerdings ist es auch in impliziten Programmiersprachen wie Python sinnvoll, die Datentypen zumindest im Hinterkopf zu behalten. Sobald Python einen Datentyp erkennt, mit dem die gewünschte Operation nicht ausführbar ist, wird ein sogenannter Typfehler zurückgegeben.

a = 'string1'
b = 'string2'
print(a-b)

Out:
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Wenn diese Fehler auftreten, wissen Sie sofort, wo Sie suchen müssen, um den Code wieder zum Laufen zu bringen. Es muss sich um eine Operation handeln, die mit den angegebenen Datentypen nicht möglich ist. Entweder haben wir also die falsche Operation für die gegebenen Datentypen verwendet oder die Variablen haben andere Datentypen, die wir nicht beabsichtigt haben. 

Um diesen Fehler zu vermeiden, können wir den Datentyp einer Variablen überprüfen und die Operation nur ausführen, wenn wir sicher sind, dass die Typen korrekt sind: 

a = 1
b = 2
if isinstance(a, int) and isinstance(b, int):
    print(a-b)
else:
    print('The operation is not possible.')

Out: 
-1

Seit Python Version 3 gibt es auch die Möglichkeit, bei der Definition einer Funktion den Datentyp zu deklarieren. Auf diese Weise definiert der Programmierer genau, welche Typen er als Eingaben erwartet und welche Typen er als Ausgaben bereitstellt. 

def example_function(input1: int, input2: list) -> int:
   return input2[input1]

Es wird jedoch nicht automatisch ein Typfehler ausgegeben, wenn gegen diese Deklaration verstoßen wird. Dennoch hilft die Spezifikation anderen Programmierern im Team, den Code besser zu verstehen und nachgelagerte Funktionen an diese Funktion anzupassen. Außerdem hilft sie den Programmierfrontends, ihre automatische Vervollständigung besser auf den gegebenen Datentyp einzustellen und so Fehler frühzeitig zu erkennen.

Ein weiterer Vorteil von Datentypen ist die Optimierung von Leistung und Datenspeicherung. Ganzzahlige Variablen benötigen zum Beispiel deutlich weniger Speicherplatz als Dezimalzahlen. Gleichzeitig können Ganzzahlen auch schneller Werte verarbeiten als Variablen vom Typ double.

Das solltest Du mitnehmen

  • Datentypen werden genutzt, um die Art einer Variablen zu definieren. Dadurch wird auch festgelegt, welche Operationen mit der Variablen möglich sind und welche nicht.
  • Als Typisierung bezeichnet man die Möglichkeit, Wertebereiche einer Variablen einschränken zu können.
  • Im Allgemeinen gibt es die Datentypen Integer, Floating Point, String, Boolean, Datetime Timestamp und Character. Darüber hinaus gibt es noch mehr definierte Datentypen, die je nach Programmiersprache oder Datenbank variieren können.

Andere Beiträge zum Thema Datentypen

  • Auf dieser Seite findest Du eine Übersicht über alle Datentypen in der Programmiersprache Python und nützliche Befehle, wie Du diese definieren oder ändern kannst.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner