🐍 Python Nachhilfe- & Selbstlern-Portal

Vom Einsteiger zum Software-Entwickler

3 strukturierte Lehrpfade: Prozedurale Grundlagen • Objektorientierung • Professionelle Werkzeuge (Git, TDD, Tkinter)

👋 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.

Lehrpfad 1

🌱 Grundlagen der Programmierung

Für Einsteiger oder zur Wiederholung: Rechnen, Variablen, Bedingungen, Schleifen, Funktionen, Listen, Dictionaries & Strings (G01–G10).

Lehrpfad 2

🏗️ Einstieg in OOP & Tools

Klassen, Baupläne, __init__, Methoden, UML-Diagramme, VS Code Umstieg, Git-Versionskontrolle & Tamagotchi-Projekt (00–06).

Lehrpfad 3

🚀 Fortgeschrittenes OOP, Container & GUIs

Speicher-Referenzen, Dunder-Methoden, Unit Tests (TDD), Vererbung, Polymorphie, Exceptions, JSON, Tkinter, Container & Masterprojekt (07–16).

📚 Schulabgleich & Lehrplan:
Alle Kapitel sind 1:1 mit dem offiziellen Skriptum des Informatik-Unterrichts abgestimmt. Detaillierter Leitfaden in LEHRPLAN.md.

📖 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:

1

📥 Lokal nutzen oder im Browser lernen

Du kannst das Lernportal direkt online nutzen oder 100% offline auf deinem Computer speichern:

Terminal (Repository lokal klonen)
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!

2

🔄 Der didaktische Lernkreislauf (PRIMM-Workflow)

1. Verstehen & Vorhersagen

Lies die Alltagsanalogie im Kapitel-Guide und löse das interaktive Parsons Code-Puzzle (+25 XP).

2. Programmieren

Öffne aufgabe.py in deinem Editor (z.B. VS Code) und folge den nummerierten Teilzielen (Subgoals).

3. Testen & Feiern

Führe python3 test_aufgabe.py aus. Sobald alle Tests grün sind, steigen deine XP automatisch!

3

🎮 Entwickler-Pass & Trophäen im Terminal

Überprüfe deinen Fortschritt, deinen aktuellen Rang und deine 14 freischaltbaren Trophäen:

Terminal
python3 profil.py      # Zeigt deinen animierten Entwickler-Pass
python3 test_all.py    # Prüft alle 27 Kapitel auf einen Schlag und synchronisiert XP
4

🩺 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)

Die unverzichtbare Basis: Datentypen, Kontrollstrukturen, Funktionen und Datenstrukturen.
10 Kapitel • G01 bis G10
Grundlagen G01
🧮 Python als Taschenrechner
Zahlen (int, float), Grundrechenarten, Ganzzahldivision //, Modulo %, Potenzen ** & print().
Grundlagen G02
📦 Variablen & Datentypen
Speicherboxen, die 4 Basisdatentypen (int, float, str, bool), Type Casting & Type Hints.
Grundlagen G03
💬 Interaktive Ein- & Ausgabe
Benutzereingaben mit input(), Textumwandlung und moderne formatierte f-Strings (z.B. {preis:.2f} €).
Grundlagen G04
🚦 Bedingungen & Verzweigungen
Entscheidungen treffen mit if, elif, else, Vergleichs- und Logikoperatoren (and, or, not).
Grundlagen G05
🎡 Schleifen & Wiederholungen
Zählschleifen mit for in range(...), Bedingungsschleifen mit while, break & continue.
Grundlagen G06
🪄 Eigene Funktionen & Module
Wiederverwendbarer Code mit def, return, Parametern, Scope und Modulen (math, random).
Grundlagen G07
📋 Listen & Sequenzen
Elemente speichern, Indexzugriff, Slicing ([1:4]), Listen-Methoden (append, pop) & sum/len/min/max.
Grundlagen G08
🔤 Textverarbeitung & Strings
String-Methoden wie .strip(), .replace(), .split(), .join() und Palindrom-Analyse.
Grundlagen G09
🗃️ Dictionaries & Sets
Schlüssel-Wert-Paare ({key: val}), sicheres .get(), Telefonbuch-Suche & Mengen (set) ohne Duplikate.
Grundlagen G10
🚀 Comprehensions & Algorithmen
List Comprehensions ([x for x in ...]), datetime für Kalenderberechnungen & Min/Max-Suche.

🛣️ Lehrpfad 2: Einstieg in OOP & Entwickler-Werkzeuge

Der Übergang zur Objektorientierung: Baupläne, Methoden, UML, VS Code & Git.
Kapitel 00 bis 06
Warm-up 00
🔍 Fehlersuche & Bugs
Tracebacks von unten lesen, Einrückungen (IndentationError), Typfehler und Detektiv-Aufgabe.
Kapitel 01
🐶 Die erste Klasse
Bauplan vs. Objekt, Instanziierung, Punktnotation und Type Hints am Fahrrad- & Haustier-Beispiel.
Kapitel 02
💳 Konstruktor & self
Wie __init__ Objekte startklar macht, was self bedeutet und erste UML-Klassendiagramme.
Kapitel 03
⚔️ Methoden & Verhalten
Objekte führen Aktionen aus! Interaktion zwischen Objekten in Rennautos und RPG-Heldenduellen.
Kapitel 04
🧾 Schöne Textausgabe
Wie man print(objekt) mit __str__ lesbar macht und Rechnungsdruck im Warenkorb.
Exkurs 04b
🚀 Installation & Setup VS Code
Installationsanleitung (Win/Mac/Linux), Plugins (Error Lens, Python), Shortcuts & Terminal.
Exkurs 04c
🌿 Git & Versionskontrolle
Die Programmier-Zeitmaschine: Spielstände (Commits) sichern, Diffs in VS Code, Terminal & Push.
Kapitel 05
🎵 Assoziation & Komposition
Objekte verwalten andere Objekte: Song-Suche, Längenberechnung und Filter in Spotify-Playlists.
Kapitel 06
🥚 Mini-Projekt: Tamagotchi
Kombiniere alles in einem voll spielbaren, interaktiven virtuellen Haustier für dein Terminal!

🛣️ Lehrpfad 3: Fortgeschrittenes OOP, Testing & Desktop-GUIs

Professionelle Softwaretechnik: Speicherverwaltung, Vererbung, TDD-Tests, Persistenz und GUIs.
Kapitel 07 bis 16
Kapitel 07
🌳 Referenzen & Stammbäume
Speicherbereiche im RAM, Aliasing (b = a), is vs. == und Familienstammbäume.
Kapitel 08
➕ Operator Overloading & Dunder
Eigene Klassen rechenbar machen mit __add__, __mul__, __eq__ für 2D-Vektoren & Wegstrecken.
Kapitel 09
🧪 Eigene Unit Tests & TDD
Schreibe eigene Testsuiten mit unittest, self.assertEqual(), assertRaises() und lerne TDD.
Kapitel 10
🧬 Vererbung & super()
DRY-Prinzip, Basis- & Kindklassen, super().__init__(), Methoden erweitern & Fahrzeugflotten.
Kapitel 11
🎭 Polymorphie & Interfaces
Vielgestaltigkeit, Duck Typing, abstrakte Basisklassen (ABC), Geometrie-Engine & Zeichenflächen.
Kapitel 12
🛡️ Exceptions & Fehlerbehandlung
Robuste Fehlerkontrolle mit try-except-else-finally, raise und eigene Fehlerklassen im Banking.
Kapitel 13
💾 Datei-Persistenz: JSON & CSV
Dauerhaftes Speichern & Laden: Savegames mit to_dict()/from_dict(), json.dump und CSV-Export.
Kapitel 14
🖥️ Desktop-GUIs mit Tkinter
Fenster, Buttons, Labels, Grid-Layout, Event-Loop und MVC-Architektur im interaktiven Zähler & Rechner.
Kapitel 15
🎒 Parameter & Eigene Container
Variable Argumente (*args, **kwargs), Unpacking und Container-Dunder (len, [], in, iter) im Gaming-Inventar.
🏆 Kapitel 16 • Masterprojekt
🐾 PetCare & Tierheim-Manager
Das große Meisterstück: MVC-Architektur, Vererbung, Polymorphie, JSON-Savegames, CSV-Export & Tkinter Desktop-App!

🧪 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:

Terminal (Beispiel für Grundlagen G01)
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:

Terminal (Hauptordner)
python3 test_all.py
💡 Die 3 goldenen Regeln beim Arbeiten mit Tests:
  1. Immer return statt nur print(): Tests prüfen das, was eine Funktion mit return zurückliefert. Ein print() zeigt es zwar auf dem Bildschirm an, reicht dem Test aber nicht!
  2. Exakte Namen beachten: Wenn die Aufgabe def addieren(a, b): verlangt, darf die Funktion nicht def Addieren heißen (Python unterscheidet Groß- und Kleinschreibung).
  3. 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)