IT-Praxisportal: Interaktive Lern- & Prüfungsvorbereitungs-Plattform für Fachinformatiker & IT-Entwickler (216+ Module in 13 Schlüssel-Technologien, Monaco Web-IDE, IHK AP1/AP2 Prüfungstrainer)
| 00_fehlersuche_und_grundlagen | ||
| 01_einstieg_klassen | ||
| 02_init_und_self | ||
| 03_methoden_und_verhalten | ||
| 04_str_und_darstellung | ||
| 04b_umstieg_vscode | ||
| 05_objekte_kombinieren | ||
| 06_abschlussprojekt_tamagotchi | ||
| 07_referenzen_und_speicher | ||
| assets | ||
| .gitignore | ||
| index.html | ||
| LEHRPLAN.md | ||
| README.md | ||
| test_all.py | ||
🐍 Python OOP Übungsreihe: Der Einstieg in Klassen & Objekte
Willkommen zu deiner Übungsreihe für Objektorientierte Programmierung (OOP) in Python! 🎉
Diese Übungsreihe ist didaktisch aufbereitet und 1:1 mit dem offiziellen Lehrplan des Informatik-Unterrichts (LEHRPLAN.md) abgeglichen.
🗺️ Der Lernpfad
🌱 Phase 1: Grundlagen OOP & Entwicklungsumgebung
| Kapitel | Thema | Was du lernst |
|---|---|---|
| 00. Fehlersuche & Grundlagen | Warm-up & Debugging | Tracebacks lesen, Einrückungen (IndentationError), Typfehler & Detektiv-Aufgabe |
| 01. Einstieg in Klassen | Warum Klassen? | Bauplan vs. Objekt, Instanziierung, Punktnotation & Type Hints |
| 02. Konstruktor & self | __init__, self & UML |
Objekte sauber initialisieren und erste UML-Klassendiagramme |
| 03. Methoden & Verhalten | Methoden & Interaktion | Objekte können handeln & miteinander im Duell interagieren |
| 04. Schöne Textausgabe | __str__ Dunder-Methode |
Wie Objekte lesbar mit print() ausgegeben werden (Warenkorb & Bon) |
| 04b. Umstieg & Installation VS Code | Exkurs: IDE-Wechsel | Installation (Win/Mac/Linux), Plugins (Error Lens, Python), Shortcuts & Terminal |
| 05. Objekte kombinieren | Assoziation & Komposition | Listen von Objekten & Spotify-Playlists filtern und berechnen |
| 06. Abschlussprojekt OOP 1 | Mini-Projekt: Tamagotchi | Ein interaktives Konsolenspiel mit allem Gelernten |
🧠 Phase 2: Fortgeschrittenes OOP, Speicher & Persistenz
| Kapitel | Thema | Was du lernst |
|---|---|---|
| 07. Referenzen, Speicher & Stammbäume | Speicher & RAM | Referenzen, Aliasing (b = a), Mutable vs. Immutable, is vs. == & Familienstammbaum |
| 08. Operator Overloading | Dunder-Methoden | __add__, __eq__, __lt__ (2D-Vektoren & Kartenspiele) |
09. Vererbung & super() |
Inheritance | Basisklassen, Kindklassen & super().__init__() (Fahrzeuge & RPG-Helden) |
| 10. Polymorphie & Interfaces | Polymorphism | Methoden überschreiben, Geometrie- & Grafik-Engine |
| 11. Exceptions & Fehler | Robustes Coding | try/except/else/finally, raise, eigene Exception-Klassen |
| 12. JSON & CSV Speichern | Persistenz | Spielstände dauerhaft mit JSON/CSV auf der Festplatte sichern |
(Den vollständigen didaktischen Masterplan für alle Kapitel bis 15 findest du in LEHRPLAN.md.)
🧪 Wie benutze ich die automatischen Tests?
In jedem Kapitelordner liegt eine Datei namens test_aufgabe.py. Sie enthält automatische Unit Tests, die überprüfen, ob deine Lösung alle Anforderungen erfüllt.
1. Einzelnes Kapitel testen
Öffne das Terminal in VS Code (`Strg + ``) und führe den Test im jeweiligen Ordner aus:
# Beispiel für Kapitel 01:
cd 01_einstieg_klassen
python3 test_aufgabe.py
2. Testausgabe richtig lesen:
- ✅
OK: Perfekt! Alle Tests sind grün und bestanden. Du kannst mit dem nächsten Kapitel weitermachen. - ❌
FAIL(AssertionError): Dein Code läuft, liefert aber einen falschen Wert zurück (z.B. Rechenfehler oder falsche Bedingung). Lies die letzte Zeile der Fehlermeldung! - 💥
ERROR(Syntax / AttributeError): Dein Code hat einen Absturz (z.B. Tippfehler im Methodennamen oderselfim Methodenkopf vergessen).
3. Gesamten Fortschritt aller Kapitel prüfen:
Führe im Hauptordner folgenden Befehl aus:
python3 test_all.py
Dieser Befehl zeigt dir eine Übersicht über alle Kapitel mit ✅ (bestanden) und ⏳ (noch offen).
💡 3 Wichtige Regeln für die Aufgaben
returnstattprint(): Tests prüfen das, was eine Methode mitreturnzurückliefert. Ein reinesprint()genügt dem Test nicht!- Exakte Namen: Die Namen der Methoden und Attribute müssen exakt der Aufgabenstellung entsprechen (
mutter_setzen, nichtMutterSetzen). - Immer
selfals erster Methoden-Parameter: Jede Methode in einer Klasse mussdef meine_methode(self, ...):geschrieben werden.