👋 Willkommen zu deiner interaktiven Python-Lernreise!
Dieses Portal begleitet dich Schritt für Schritt von den ersten Schritten in Python bis hin zu vollständigen Desktop-Apps mit grafischer Oberfläche. Alle Aufgaben sind mit verständlichen Erklärungen, Alltags-Analogien, visuellen Beispielen und automatischen Tests für sofortiges Feedback ausgestattet.
🌱 Grundlagen der Programmierung
Für Einsteiger oder zur Wiederholung: Rechnen, Variablen, Bedingungen, Schleifen, Funktionen, Listen, Dictionaries & Strings (G01–G10).
🏗️ Einstieg in OOP & Tools
Klassen, Baupläne, __init__, Methoden, UML-Diagramme, VS Code Umstieg, Git-Versionskontrolle & Tamagotchi-Projekt (00–06).
🚀 Fortgeschrittenes OOP, Container & GUIs
Speicher-Referenzen, Dunder-Methoden, Unit Tests (TDD), Vererbung, Polymorphie, Exceptions, JSON, Tkinter, Container & Masterprojekt (07–16).
📖 Schritt-für-Schritt-Tutorial: So nutzt du dieses Lernportal
Willkommen! Dieses Portal wurde nach den neuesten wissenschaftlichen Erkenntnissen der Informatikdidaktik (PRIMM-Modell & Cognitive Load Theory) gestaltet. Hier erfährst du, wie du das Beste aus den 27 Lerneinheiten herausholst:
📥 Lokal nutzen oder im Browser lernen
Du kannst das Lernportal direkt online nutzen oder 100% offline auf deinem Computer speichern:
git clone https://github.com/alexander-mueller/python-oop-lernportal.git
cd python-oop-lernportal
💡 Tipp: Öffne index.html einfach per Doppelklick in deinem Webbrowser – alle Skripte und der Gamification-Status funktionieren auch offline!
🔄 Der didaktische Lernkreislauf (PRIMM-Workflow)
Lies die Alltagsanalogie im Kapitel-Guide und löse das interaktive Parsons Code-Puzzle (+25 XP).
Öffne aufgabe.py in deinem Editor (z.B. VS Code) und folge den nummerierten Teilzielen (Subgoals).
Führe python3 test_aufgabe.py aus. Sobald alle Tests grün sind, steigen deine XP automatisch!
🎮 Entwickler-Pass & Trophäen im Terminal
Überprüfe deinen Fortschritt, deinen aktuellen Rang und deine 14 freischaltbaren Trophäen:
python3 profil.py # Zeigt deinen animierten Entwickler-Pass
python3 test_all.py # Prüft alle 27 Kapitel auf einen Schlag und synchronisiert XP
🩺 Hilfe bei Fehlern & Tracebacks
Wenn ein Test fehlschlägt oder dein Programm mit einem Fehler abbricht, kopiere die rote Fehlermeldung aus dem Terminal und füge sie unten in den Interaktiven Fehler-Dolmetscher ein! Du erhältst sofort eine deutsche Erklärung und 3 konkrete Lösungsschritte.
🛣️ Lehrpfad 1: Grundlagen der Programmierung (Prozedural)
int, float), Grundrechenarten, Ganzzahldivision //, Modulo %, Potenzen ** & print().int, float, str, bool), Type Casting & Type Hints.input(), Textumwandlung und moderne formatierte f-Strings (z.B. {preis:.2f} €).if, elif, else, Vergleichs- und Logikoperatoren (and, or, not).for in range(...), Bedingungsschleifen mit while, break & continue.def, return, Parametern, Scope und Modulen (math, random).[1:4]), Listen-Methoden (append, pop) & sum/len/min/max..strip(), .replace(), .split(), .join() und Palindrom-Analyse.{key: val}), sicheres .get(), Telefonbuch-Suche & Mengen (set) ohne Duplikate.[x for x in ...]), datetime für Kalenderberechnungen & Min/Max-Suche.🛣️ Lehrpfad 2: Einstieg in OOP & Entwickler-Werkzeuge
__init__ Objekte startklar macht, was self bedeutet und erste UML-Klassendiagramme.print(objekt) mit __str__ lesbar macht und Rechnungsdruck im Warenkorb.🛣️ Lehrpfad 3: Fortgeschrittenes OOP, Testing & Desktop-GUIs
b = a), is vs. == und Familienstammbäume.__add__, __mul__, __eq__ für 2D-Vektoren & Wegstrecken.unittest, self.assertEqual(), assertRaises() und lerne TDD.super().__init__(), Methoden erweitern & Fahrzeugflotten.ABC), Geometrie-Engine & Zeichenflächen.try-except-else-finally, raise und eigene Fehlerklassen im Banking.to_dict()/from_dict(), json.dump und CSV-Export.*args, **kwargs), Unpacking und Container-Dunder (len, [], in, iter) im Gaming-Inventar.🧪 Wie benutze ich die Tests? (Komplette Test-Anleitung)
In der professionellen Softwareentwicklung schreibt man zu jedem Code automatische Unit Tests. Das Geniale daran: Du musst nie raten, ob deine Lösung stimmt! Das Testskript überprüft deine Funktionen in Sekundenbruchteilen mit vielen verschiedenen Testfällen.
1. Einen Test für ein einzelnes Kapitel ausführen
Öffne das Terminal in VS Code mit Strg + ` (Mac: Cmd + `). Wechsle in den jeweiligen Kapitelordner und starte das Testskript:
cd g01_erste_schritte_taschenrechner
python3 test_aufgabe.py
2. Wie lese ich das Testergebnis?
✅ Alles bestanden (OK)
Ran 4 tests in 0.002s
OK
Perfekt! Alle Anforderungen sind erfüllt. Du bist bereit für das nächste Kapitel!
❌ Falsches Ergebnis (FAIL)
AssertionError: 25 != 40
berechne_endstand falsch
Dein Code stürzt nicht ab, aber liefert einen falschen Wert (z.B. falsche Rechenformel).
💥 Absturz / Syntax (ERROR)
AttributeError: 'Fahrrad'
object has no attribute 'gang'
Ein Attribut oder Methodenname fehlt oder ist falsch geschrieben (z.B. Tippfehler).
3. Gesamten Kursfortschritt auf einen Klick prüfen
Du möchtest wissen, wie viele Kapitel du schon gelöst hast? Führe im Hauptordner Aufgaben-Python einfach folgenden Befehl aus:
python3 test_all.py
- Immer
returnstatt nurprint(): Tests prüfen das, was eine Funktion mitreturnzurückliefert. Einprint()zeigt es zwar auf dem Bildschirm an, reicht dem Test aber nicht! - Exakte Namen beachten: Wenn die Aufgabe
def addieren(a, b):verlangt, darf die Funktion nichtdef Addierenheißen (Python unterscheidet Groß- und Kleinschreibung). - Fehlermeldungen von unten nach oben lesen: Ganz unten steht immer genau, was nicht gepasst hat!
🏆 Offizielle Lehrpfad-Abschlusszertifikate
Sobald du einen Lehrpfad oder das gesamte Portal abgeschlossen hast, kannst du dir hier dein persönliches, ausdruckbares Abschluss-Zertifikat mit deinen freigeschalteten Leistungsnachweisen generieren!
🩺 Häufige Fragen & Troubleshooting
❌ Fehlermeldung: TypeError: ... takes 0 positional arguments but 1 was given
Ursache: Du hast bei einer Methode in deiner Klasse das self im Methodenkopf vergessen!
Lösung: Schreibe def meine_methode(self): statt def meine_methode():.
❌ Fehlermeldung: AttributeError: 'NoneType' object has no attribute '...'
Ursache: Eine Funktion oder Methode hat nichts zurückgegeben (also None), und du versuchst, darauf zuzugreifen.
Lösung: Prüfe, ob du am Ende der Methode das return ... vergessen hast!
❌ Wie wechsle ich im Terminal zwischen den Ordnern hin und her?
In einen Unterordner hinein: cd lehrpfad_1_grundlagen/01_erste_schritte_taschenrechner
Einen Ordner nach oben zurück: cd ..
Inhalt des aktuellen Ordners auflisten: ls (oder dir auf Windows)