Zum Inhalt springen
aviral gupta

// LERNEN · SPRACHEN & FRAMEWORKS

Python

Ein praxisnaher Python-Kurs von der Installation bis zu Typisierung, Nebenläufigkeit und dem Veröffentlichen eines Pakets. Jedes Beispiel wird mit Python 3.14 ausgeführt und geprüft.

Niveau: Einstieg bis Vertiefung · Für: Alle, die in Python programmieren möchten, vom ersten Skript bis zum Produktionscode. Keine Vorkenntnisse nötig.

Lehrplan

Einstieg

Vollständig

Nach dieser Stufe können Sie

  • Python 3.14 installieren, ein Skript ausführen und den interaktiven Interpreter nutzen
  • Programme mit Variablen, Zahlen, Strings, Listen, Bedingungen, Schleifen und match schreiben
  • Funktionen mit Standardwerten, Schlüsselwort-, Nur-Positions- und Nur-Schlüsselwort-Parametern definieren und aufrufen
  • Zwischen list, tuple, set und dict wählen und den Unterschied zwischen Namen und Objekten, Kopien und die Falle veränderlicher Standardwerte erklären
  • Code auf Module aufteilen, Text- und JSON-Dateien lesen und schreiben und die häufigen Ausnahmen behandeln
  1. B1Erste Schritte5 von 5 geschrieben · 5 LektionenBrowser und Ihr Rechner

    Python installieren, die REPL als Taschenrechner nutzen, mit Zahlen, Text und Listen arbeiten und eine erste Schleife schreiben

    Sie bauen: Ein Trinkgeldrechner

    1. B1.1Python installieren und das erste Skript ausführen
    2. B1.2Zahlen: Python als Taschenrechner
    3. B1.3Text: Strings, Indizes und Slices
    4. B1.4Listen: eine Folge speichern und ändern
    5. B1.5Erstes Programm: Variablen, eine while-Schleife und ein Trinkgeldrechner
  2. B2Kontrollfluss5 von 5 geschrieben · 5 LektionenLäuft im Browser

    Mit if und match verzweigen und mit for, range, while, break, continue und else an Schleifen wiederholen

    Sie bauen: FizzBuzz-Varianten und ein Menü mit match

    1. B2.1Entscheidungen mit if, elif und else
    2. B2.2for-Schleifen und range()
    3. B2.3break, continue, pass und else bei Schleifen
    4. B2.4Mustervergleich mit match
    5. B2.5Projekt: FizzBuzz-Varianten und ein Menü mit match
  3. B3Funktionen5 von 5 geschrieben · 5 LektionenLäuft im Browser

    Funktionen mit Standardwerten, Schlüsselwort- und Spezialparametern, *args und **kwargs, Lambdas, Docstrings und Annotationen definieren

    Sie bauen: Eine Bibliothek zur Einheitenumrechnung

    1. B3.1Funktionen definieren und Werte zurückgeben
    2. B3.2Standardwerte und Schlüsselwortargumente
    3. B3.3Nur positionell, nur per Schlüsselwort, *args und **kwargs
    4. B3.4Lambdas, Docstrings, Annotationen und PEP 8
    5. B3.5Projekt: eine Bibliothek zum Umrechnen von Einheiten
  4. B4Datenstrukturen6 von 6 geschrieben · 6 LektionenLäuft im Browser

    Listen, Deques, Comprehensions, Tupel, Sets und Dicts nutzen und erkennen, wann zwei Namen dasselbe Objekt teilen

    Sie bauen: Ein Worthäufigkeitszähler

    1. B4.1Listenmethoden, Stacks und Queues
    2. B4.2List Comprehensions
    3. B4.3Tupel und Entpacken
    4. B4.4Sets (Mengen)
    5. B4.5Dictionaries und Schleifentechniken
    6. B4.6Referenzen, Kopien und die Falle veränderlicher Standardwerte
  5. B5Module, Dateien und Fehler5 von 5 geschrieben · 5 LektionenLäuft im Browser

    Module importieren und schreiben, mit f-Strings formatieren, Dateien und JSON lesen und schreiben und Ausnahmen behandeln und auslösen

    Sie bauen: Eine To-do-Verwaltung in einer JSON-Datei

    1. B5.1Module und Importe
    2. B5.2Formatierte Ausgabe mit f-Strings
    3. B5.3Dateien lesen und schreiben
    4. B5.4Strukturierte Daten mit JSON speichern
    5. B5.5Ausnahmen behandeln

Projekt der Stufe Einstieg

Ausgaben-Tracker

Ausgaben nach Kategorie und Monat erfassen, auflisten und zusammenfassen, gespeichert in einer JSON-Datei, mit Tests für eine fehlende und eine beschädigte Datei.

Läuft im BrowserSelbst geprüft anhand einer Checkliste

Zur Projektanleitung

Aufbau

Vollständig

Nach dieser Stufe können Sie

  • Fehlerbehandlung mit eigenen Ausnahmen, Verkettung, finally, Kontextmanagern und Ausnahmegruppen entwerfen
  • Eine Fachdomäne mit Klassen, Vererbung, Dataclasses und enum modellieren und Gültigkeitsbereiche und Namensräume erklären
  • Iteratoren und Generatoren schreiben und itertools, functools und collections idiomatisch einsetzen
  • Ein Kommandozeilenwerkzeug mit argparse, pathlib, re, datetime, csv und logging bauen
  • Mit unittest, unittest.mock und doctest testen und ein Projekt mit venv, pip und pyproject.toml verwalten
  1. I1Fehler im Detail5 von 5 geschrieben · 5 LektionenLäuft im Browser

    Ausnahmen verketten, eigene schreiben, mit finally und with aufräumen und Ausnahmegruppen behandeln

    Sie bauen: Ein Dateileser mit Wiederholungsversuchen

    1. I1.1Eigene Exceptions definieren und auslösen
    2. I1.2Verkettete Exceptions
    3. I1.3Aufräumen mit finally und with
    4. I1.4Exception-Gruppen und Notizen
    5. I1.5Build: ein Dateileser mit Wiederholung und contextlib
  2. I2Klassen6 von 6 geschrieben · 6 LektionenLäuft im Browser

    Gültigkeitsbereiche, Klassen, Vererbung und die MRO, private Namen, Dataclasses und enum nutzen

    Sie bauen: Ein Bankkonto-Modell mit Dataclasses

    1. I2.1Gültigkeitsbereiche und Namensräume
    2. I2.2Klassen und Instanzen
    3. I2.3Vererbung und die MRO
    4. I2.4Private Namen und Properties
    5. I2.5Datenklassen
    6. I2.6Projekt: Enums und ein Bankkonto-Modell
  3. I3Iteration und funktionale Werkzeuge6 von 6 geschrieben · 6 LektionenLäuft im Browser

    Iteratoren und Generatoren schreiben und itertools, functools und collections nutzen

    Sie bauen: Eine verzögert ausgewertete CSV-Pipeline

    1. I3.1Das Iterator-Protokoll
    2. I3.2Generatoren
    3. I3.3Generator-Ausdrücke und verzögerte Auswertung
    4. I3.4itertools
    5. I3.5functools und Dekoratoren
    6. I3.6Projekt: ein lazy CSV-Bericht mit collections
  4. I4Die Standardbibliothek für echte Programme6 von 6 geschrieben · 6 LektionenBrowser und Ihr Rechner

    pathlib, argparse, sys, re, datetime, csv und logging in einem echten Programm einsetzen

    Sie bauen: Ein grep für Logdateien auf der Kommandozeile

    1. I4.1Dateien und Ordner mit pathlib
    2. I4.2Kommandozeilenprogramme mit argparse und sys
    3. I4.3Reguläre Ausdrücke mit re
    4. I4.4Datum und Uhrzeit mit datetime
    5. I4.5CSV-Dateien
    6. I4.6Logging und ein eigenes Log-grep
  5. I5Tests und Projektwerkzeuge5 von 5 geschrieben · 5 LektionenBrowser und Ihr Rechner

    Mit unittest, mock und doctest testen und ein Projekt mit venv, pip und pyproject.toml aufsetzen

    Sie bauen: Ein getestetes, installierbares Paketgerüst

    1. I5.1Testen mit unittest
    2. I5.2Testdoubles mit unittest.mock
    3. I5.3doctest und was man testet
    4. I5.4Virtuelle Umgebungen und pip
    5. I5.5pyproject.toml und ein installierbares Paket

Projekt der Stufe Aufbau

Log-Analyse

Ein Kommandozeilenwerkzeug, das Logdateien einliest, auswertet, CSV oder JSON schreibt, seinen Fortschritt protokolliert und sich als Konsolenskript installieren lässt.

Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste

Zur Projektanleitung

Vertiefung

Vollständig

Nach dieser Stufe können Sie

  • Python-Protokolle über Spezialmethoden und Deskriptoren umsetzen und Attributzugriff und Klassenerzeugung steuern
  • Eine Codebasis mit Generics, Protocol, TypedDict und Überladungen typisieren und mit mypy prüfen
  • Für eine Aufgabe zwischen Threads, Prozessen und asyncio wählen und strukturierten asynchronen Code schreiben
  • Leistung messen und verbessern und Gleitkomma- und Dezimalrechnung korrekt handhaben
  • Template-Strings und tomllib nutzen, die häufigen Sicherheitsfallen vermeiden und ein Paket veröffentlichen
  1. A1Das Datenmodell6 von 6 geschrieben · 6 LektionenLäuft im Browser

    Spezialmethoden, Operatoren, Container- und Kontextprotokolle, Deskriptoren und Metaklassen umsetzen

    Sie bauen: Ein Vector- und Matrix-Typ mit Operatoren

    1. A1.1__repr__, __str__, __eq__ und __hash__
    2. A1.2Operatoren überladen
    3. A1.3Container-Protokolle
    4. A1.4Kontextmanager schreiben
    5. A1.5Deskriptoren und Properties
    6. A1.6Build: Attribut-Hooks, Klassenerzeugung, Vector und Matrix
  2. A2Typisierung6 von 6 geschrieben · 6 LektionenBrowser und Ihr Rechner

    Code mit Generics, Protocol, TypedDict, Literal und Überladungen typisieren und Annotationen zur Laufzeit lesen

    Sie bauen: Ein untypisiertes Modul typisieren, bis mypy nichts mehr meldet

    1. A2.1Typ-Hinweise und ein Typprüfer
    2. A2.2Generics mit der Syntax aus PEP 695
    3. A2.3Strukturelle Typisierung mit Protocol
    4. A2.4TypedDict, Literal und Final
    5. A2.5Overloads und Type Narrowing
    6. A2.6Annotationen zur Laufzeit in 3.14
  3. A3Nebenläufigkeit6 von 6 geschrieben · 6 LektionenLäuft auf Ihrem Rechner

    Zwischen Threads, Prozessen und asyncio wählen und TaskGroup und Zeitlimits nutzen

    Sie bauen: Ein nebenläufiger Datei-Hasher, verglichen über alle drei Modelle

    1. A3.1Threads, Locks und der GIL
    2. A3.2Prozesse mit multiprocessing
    3. A3.3concurrent.futures
    4. A3.4asyncio: Coroutines und Tasks
    5. A3.5TaskGroup, Timeouts und Abbruch
    6. A3.6Das passende Nebenläufigkeitsmodell wählen
  4. A4Leistung und Zahlen5 von 5 geschrieben · 5 LektionenBrowser und Ihr Rechner

    Mit timeit und cProfile messen und Gleitkommazahlen, decimal und schwache Referenzen handhaben

    Sie bauen: Einen langsamen Bericht zehnmal schneller machen, gemessen

    1. A4.1Messen mit timeit
    2. A4.2Profiling mit cProfile
    3. A4.3Was die Wahl der Datenstruktur kostet
    4. A4.4Gleitkomma, Decimal und Brüche
    5. A4.5Schwache Referenzen und ein zehnmal schnellerer Bericht
  5. A5Modernes Python und sicherer Code5 von 5 geschrieben · 5 LektionenBrowser und Ihr Rechner

    Template-Strings, tomllib und sqlite3 sicher nutzen, eval, pickle und shell=True vermeiden und ein Paket veröffentlichen

    Sie bauen: Ein sicherer Berichtsgenerator mit Template-Strings

    1. A5.1Template-Strings (t-Strings)
    2. A5.2Konfiguration mit tomllib lesen
    3. A5.3sqlite3 und parametrisierte Abfragen
    4. A5.4eval, pickle und shell=True
    5. A5.5Secrets, Hashing und Veröffentlichen

Projekt der Stufe Vertiefung

Asynchroner Job-Runner

Ein asyncio-Runner mit TaskGroup, Zeitlimits je Job, Wiederholungen mit Backoff und Abbruch, vollständig typisiert und profiliert.

Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste

Zur Projektanleitung

Abschlussprojekt

Abschlussprojekt

Persönliche Bibliotheksverwaltung

Ein installierbares Paket mit Kommandozeile, typisiertem Domänenmodell, sqlite3-Speicher, TOML-Konfiguration, Logging und einer Testsuite.

Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste

Zur Projektanleitung

Quellen