Grundlagen 02 • Schulabgleich 03.0 & 03.1

Variablen & Datentypen 📦🏷️

Lerne, wie Daten im Arbeitsspeicher abgelegt werden, was int, float, str und bool unterscheidet und wie Type Casting funktioniert.

📂 Dateien dieser Einheit:
💻 In Web-IDE öffnen → 📄 aufgabe.py (Startercode) 🧪 test_aufgabe.py (Tests) 💡 musterloesung.py (Lösung) 📖 README.md

1. Was ist eine Variable? (Die Speicherbox-Analogie) 📦

Programme müssen Zwischenergebnisse, Spielstände oder Benutzernamen speichern. Dafür nutzt man Variablen.

🏷️ Das Namensschild am Karton:
Stell dir den Arbeitsspeicher (RAM) deines Computers wie ein gigantisches Regal voller Kartons vor:
  • Der Wert (z.B. 16 oder "Mia") liegt im Karton.
  • Der Variablenname (z.B. alter) ist das Etikett, das du außen auf den Karton klebst.
  • Mit dem Zuweisungsoperator = legst du einen Wert in den Karton hinein!
Variablen zuweisen und verändern
# Wert 16 in die Box 'alter' legen:
alter = 16

# Später Geburtstag feiern – Wert aktualisieren:
alter = alter + 1  # Jetzt ist alter 17!

print("Neues Alter:", alter)

2. Die 4 Basisdatentypen in Python 🏷️

Jeder Wert in Python gehört zu einer bestimmten Datenkategorie (einem sogenannten Datentyp):

Datentyp Python-Typ Beispiele Erklärung & Verwendung
Ganzzahl int 42, -7, 0, 1000 Zähler, Alter, Punkte im Spiel (ohne Nachkommastellen).
Kommazahl float 3.14, -0.5, 2.0 Preise, Messwerte, Notendurchschnitt (mit Dezimalpunkt .).
Text (String) str "Hallo", 'Python', "42" Namen, Nachrichten, Adressen (immer in Anführungszeichen).
Wahrheitswert bool True, False Logische Schalter, Bedingungen, Berechtigungen (z.B. Volljährigkeit).

3. Typprüfung mit type() & Moderne Type Hints 🔍

Mit der eingebauten Funktion type() kannst du Python fragen, welchen Typ ein Wert hat:

type() Abfragen
print(type(42))       # <class 'int'>
print(type(3.14))     # <class 'float'>
print(type("Mia"))    # <class 'str'>
print(type(True))     # <class 'bool'>
📝 Type Hints (Typ-Hinweise nach Schulstandard):
Im Unterricht und in professionellen Codebases kennzeichnen wir Variablen und Funktions-Signaturen mit Typen. Das hilft VS Code und Lesern enorm beim Verstehen des Codes!
Type Hints in Aktion
name: str = "Alice"
alter: int = 17
kontostand: float = 149.50
ist_mitglied: bool = True

def ist_volljaehrig(alter: int) -> bool:
    return alter >= 18

4. Typumwandlung (Type Casting) 🔄

Oft müssen wir Daten von einem Typ in einen anderen umwandeln (z.B. einen Text "42" in eine echte Zahl 42, um damit rechnen zu können).

Casting-Funktionen
# 1. In Ganzzahl umwandeln:
z1 = int("42")     # 42
z2 = int(9.99)     # 9 (schneidet Nachkommastellen einfach ab!)

# 2. In Kommazahl umwandeln:
f1 = float("3.14") # 3.14
f2 = float(10)     # 10.0

# 3. In Text umwandeln:
s1 = str(100)      # "100"
s2 = str(True)     # "True"

# 4. In Wahrheitswert (bool) umwandeln:
b1 = bool(1)       # True (Zahlen != 0 sind True)
b2 = bool(0)       # False
b3 = bool("")      # False (leerer Text ist False)
b4 = bool("Hallo") # True (nicht-leerer Text ist True)
💥 Der klassische Anfängerfehler: "10" + "20" vs. 10 + 20

Wenn du zwei Strings mit + verbindest, werden sie aneinandergehängt (Konkatenation). Wenn du zwei Zahlen addierst, wird gerechnet:

- "10" + "20""1020" ❌ (Textverkettung!)
- 10 + 2030 ✅ (Zahlenaddition!)
- int("10") + int("20")30 ✅ (Mit Casting!)

5. 📝 Deine Aufgaben in aufgabe.py

Öffne die Datei aufgabe.py und bearbeite die 4 TODOs:

💡 Lösungshinweise (Aufklappen bei Bedarf)

🔍 Tipp zu TODO 1 (Die bool vs. int Falle)

In Python erbt bool historisch von int. Wenn du isinstance(True, int) ausführst, liefert Python True! Prüfe daher immer zuerst:

if isinstance(wert, bool):
    return "Wahrheitswert"
elif isinstance(wert, int):
    return "Ganzzahl"
🔍 Tipp zu TODO 3 (Kommazahlen mit f-String runden)

Mit {preis:.2f} wird eine Kommazahl auf exakt 2 Nachkommastellen formatiert:

return f"{preis_float:.2f} €"

6. 🧪 Testen im Terminal

Sobald du alle 4 Funktionen implementiert hast, führe den Unittest aus:

Terminal
python3 test_aufgabe.py