Einsteiger ~12 Min. Denken & Wissen

Variablen und Datentypen

Lernziele

  • Variablen als benannte Speicherplätze verstehen und erklären können
  • Die wichtigsten Datentypen (Integer, Float, String, Boolean) unterscheiden
  • Deklaration und Zuweisung voneinander abgrenzen
  • Typkonvertierung und ihre Tücken kennen

Vorwissen empfohlen

Einführung

Programme verarbeiten Daten — Zahlen, Texte, Wahrheitswerte. Damit ein Programm diese Daten speichern, verändern und weiterverwenden kann, braucht es Variablen. Eine Variable ist ein benannter Speicherplatz im Arbeitsspeicher: du gibst ihr einen Namen, sagst ihr, welche Art von Daten sie enthält, und kannst ihren Wert jederzeit lesen oder ändern.

Ohne Variablen müsste jedes Programm alle Werte fest einprogrammiert haben — es könnte nicht auf Nutzereingaben reagieren, keine Berechnungen über mehrere Schritte durchführen und keine Zwischenergebnisse speichern. Variablen sind deshalb das Fundament jedes Programms.

Grundidee

Stell dir eine Variable wie eine Schachtel vor. Die Schachtel hat:

  • Einen Namen (damit du sie findest, z. B. „alter”)
  • Einen Typ (was reinpasst — Zahlen, Text, ja/nein)
  • Einen Inhalt (den aktuellen Wert, z. B. 17)

Du kannst den Inhalt jederzeit herausnehmen, etwas anderes hineinlegen — aber du kannst nicht eine Schachtel, die für Zahlen gedacht ist, plötzlich mit Text füllen (zumindest nicht ohne ausdrückliche Umwandlung).

Der Typ der Schachtel legt fest, wie viel Platz sie im Speicher braucht und was man damit machen kann. Mit einer Zahlen-Schachtel kann man rechnen. Mit einer Text-Schachtel kann man Buchstaben aneinanderhängen. Mit einer Wahrheitswert-Schachtel kann man Bedingungen prüfen.

Erklärung

Die wichtigsten Datentypen

Integer (Ganzzahl): Ganze Zahlen ohne Nachkommastellen — positiv, negativ oder null. Beispiele: Alter, Anzahl von Schülern, Jahrgang. Typische Wertebereiche: −2.147.483.648 bis 2.147.483.647 (bei 32-Bit-Integer).

alter = 17
schueleranzahl = 28

Float (Gleitkommazahl): Zahlen mit Nachkommastellen. Achtung: Computer speichern Dezimalzahlen im Binärsystem — dabei entstehen Rundungsfehler. 0.1 + 0.2 ergibt in vielen Programmiersprachen nicht exakt 0.3, sondern 0.30000000000000004. Das ist kein Bug, sondern ein grundlegendes Prinzip der Gleitkommaarithmetik.

kontostand = 1234.56
temperatur = 36.8

String (Zeichenkette): Text — eine Folge von Zeichen, eingeschlossen in Anführungszeichen. Strings können Buchstaben, Zahlen, Sonderzeichen und Leerzeichen enthalten. Mit Strings kann man nicht rechnen (zumindest nicht direkt), aber man kann sie verketten, durchsuchen, in Teile zerlegen.

vorname = "Maria"
nachricht = "Herzlich willkommen!"

Boolean (Wahrheitswert): Nur zwei mögliche Werte: true (wahr) oder false (falsch). Booleans steuern Entscheidungen im Programm — sie sind das Herzstück von Bedingungen und Schleifen.

eingeloggt = true
aufgabeAbgeschlossen = false

Deklaration und Zuweisung

Deklaration bedeutet: du teilst dem Programm mit, dass eine Variable existiert — und welchen Typ sie hat. In manchen Sprachen (z. B. Java, C++) muss man das explizit tun:

int alter;          // Deklaration: eine Ganzzahl namens "alter"

Zuweisung bedeutet: du gibst der Variable einen konkreten Wert:

alter = 17;         // Zuweisung: alter enthält jetzt den Wert 17

Beides lässt sich auch kombinieren (Initialisierung):

int alter = 17;

In modernen Sprachen wie Python oder JavaScript erkennt der Computer den Typ oft selbst (Typinferenz) — du musst ihn nicht angeben. Das macht das Schreiben einfacher, kann aber zu Verwirrung führen, wenn der Typ nicht das ist, was man erwartet.

Typkonvertierung

Manchmal muss ein Wert von einem Typ in einen anderen umgewandelt werden. Das nennt sich Typkonvertierung oder Casting.

zahl_als_text = "42"
zahl = int(zahl_als_text)    // "42" wird zur Zahl 42

Dabei kann es zu Fehlern kommen: Wenn der Text "Hallo" in eine Zahl umgewandelt werden soll, schlägt das fehl — weil "Hallo" keine gültige Zahlendarstellung ist. Solche Fehler zur Laufzeit (Laufzeitfehler) sind häufige Stolperfallen.

Implizite Typkonvertierung passiert automatisch, ohne dass du es explizit verlangst. Das kann praktisch sein, führt aber manchmal zu unerwarteten Ergebnissen:

2 + "3"   // Ergibt in JavaScript "23" (String-Verkettung), nicht 5

Konstanten

Eine Konstante ist wie eine Variable — aber ihr Wert kann nach der Zuweisung nicht mehr verändert werden. Konstanten sind sinnvoll für Werte, die sich nie ändern sollen, wie die Zahl Pi oder die maximale Anzahl von Versuchen:

PI = 3.14159265
MAX_VERSUCHE = 3

Durch Konstanten macht man Programme verständlicher und verhindert versehentliche Änderungen wichtiger Werte.

Beispiel aus dem Alltag

Schulverwaltungssystem:

Stell dir vor, du programmierst eine vereinfachte Schulverwaltung. Du brauchst Variablen für jeden Schüler:

vorname = "Leon"              // String
nachname = "Müller"           // String
alter = 16                    // Integer
notendurchschnitt = 2.3       // Float
istEntschuldigt = false       // Boolean
klasse = "10b"                // String

Und für die Schule insgesamt:

MAX_SCHUELER_PRO_KLASSE = 30  // Konstante (Integer)
schulname = "Gymnasium Musterstadt"  // String
schuelerAnzahlGesamt = 847    // Integer

Sieh: Unterschiedliche Daten brauchen unterschiedliche Typen. Das Alter ist eine Ganzzahl, der Notendurchschnitt eine Gleitkommazahl, Vor- und Nachname Strings. istEntschuldigt ist entweder wahr oder falsch — perfekt für einen Boolean.

Kontoguthaben:

kontostand = 0.0              // Float (nicht Integer, weil Cents möglich)
kontoinhaber = "Anna Bauer"   // String
kontonummer = "DE89370400440532013000"  // String (nicht Integer — führende Nullen, Buchstaben)

Warum ist die Kontonummer ein String, obwohl sie wie eine Zahl aussieht? Weil man mit ihr nicht rechnet und weil Kontonummern Buchstaben (Länderkürzel) enthalten. Datentypen hängen nicht nur vom Aussehen ab, sondern davon, was man damit machen möchte.

Anwendung

Definiere für die folgenden Situationen jeweils einen passenden Variablennamen und Datentyp. Überlege, warum du diesen Typ gewählt hast.

  1. Die aktuelle Außentemperatur in Grad Celsius
  2. Ob ein Benutzer gerade eingeloggt ist
  3. Der vollständige Name einer Person
  4. Die Anzahl der Mitglieder in einem Verein
  5. Der Preis eines Produkts in Euro
  6. Die Postleitzahl einer Adresse
  7. Die maximale erlaubte Geschwindigkeit auf einer Straße (unveränderlich)
  8. Ob eine Aufgabe als erledigt markiert wurde

Überlege bei Aufgabe 6: Warum könnte es falsch sein, eine Postleitzahl als Integer zu speichern? (Hinweis: Was ist mit Postleitzahlen, die mit einer 0 beginnen, wie 01069 Dresden?)

Typische Fehler

Falschen Datentyp wählen: Wenn du eine Telefonnummer als Integer speicherst, verlierst du führende Nullen und kannst nicht mit Leerzeichen oder Bindestrichen formatieren. Zahlen, mit denen man nicht rechnet, sind oft besser als Strings gespeichert.

Integer statt Float: Wenn du Alter als Integer und Notendurchschnitt als Integer speicherst, verlierst du die Nachkommastellen. 2.3 wird zu 2. Das führt zu falschen Berechnungen.

Typkonvertierungsfehler ignorieren: int("Hallo") wirft einen Fehler. Wenn Nutzereingaben in Zahlen umgewandelt werden, muss man immer prüfen, ob die Eingabe überhaupt eine Zahl ist.

Variablennamen zu vage wählen: x, a, temp sagen nichts darüber aus, was die Variable enthält. Gute Variablennamen sind sprechend: schuelerAlter, kontostand, istAngemeldet. Das macht Programme viel lesbarer.

Konstanten als Variablen behandeln: Wenn ein Wert sich nie ändern soll, deklariere ihn als Konstante. Das schützt vor versehentlichen Änderungen und zeigt anderen Entwicklern: Dieser Wert ist fix.

Zusammenfassung

  • Eine Variable ist ein benannter Speicherplatz mit einem Typ und einem Wert — wie eine beschriftete Schachtel
  • Die vier wichtigsten Datentypen sind Integer (Ganzzahl), Float (Gleitkommazahl), String (Text) und Boolean (wahr/falsch)
  • Deklaration gibt einer Variable einen Namen und Typ; Zuweisung gibt ihr einen Wert
  • Typkonvertierung wandelt Werte zwischen Typen um — dabei können Fehler entstehen
  • Konstanten sind Variablen, deren Wert sich nach der Initialisierung nicht mehr ändert
  • Die Wahl des richtigen Datentyps hängt davon ab, was man mit den Daten tun möchte — nicht nur davon, wie sie aussehen

Quiz

Frage 1: Was ist der Unterschied zwischen Deklaration und Zuweisung?

Frage 2: Warum sollte man eine Kontonummer als String und nicht als Integer speichern?

Frage 3: Was ist Typkonvertierung, und welches Risiko geht damit einher?

Frage 4: Welchen Datentyp würdest du für diese Werte wählen und warum? (a) Anzahl der Klausurteilnehmer, (b) Name einer Stadt, (c) Ob ein Licht eingeschaltet ist, (d) Preis eines Buches.

Schlüsselwörter

variabledatentypintegerfloatstringbooleanzuweisungdeklarationtypkonvertierungkonstante