// 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
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
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
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
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
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
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 ProjektanleitungAufbau
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
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
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
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
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
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
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 ProjektanleitungVertiefung
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
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
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
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
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
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
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 ProjektanleitungAbschlussprojekt
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 ProjektanleitungQuellen
- The Python Tutorial (Python 3.14 documentation)
- Using the Python Interpreter (The Python Tutorial, 3.14; englisch)
- Using Python on Windows (Python 3.14; englisch)
- Using Python on macOS (Python 3.14; englisch)
- Using Python on Unix platforms (Python 3.14; englisch)
- Command line and environment (Python 3.14; englisch)
- Built-in Functions: property (Python 3.14; englisch)
- An Informal Introduction to Python: First Steps Towards Programming (The Python Tutorial, 3.14; englisch)
- Data Structures: Using Lists as Queues (The Python Tutorial, 3.14; englisch)
- More Control Flow Tools: Keyword-Only Arguments, Documentation Strings (The Python Tutorial, 3.14; englisch)
- Built-in Types: Set Types, set and frozenset (Python 3.14; englisch)
- Expressions: Generator expressions (The Python Language Reference, 3.14; englisch)
- More Control Flow Tools: for Statements and the range() Function (The Python Tutorial, 3.14; englisch)
- Data Structures: Looping Techniques (The Python Tutorial, 3.14; englisch)
- More Control Flow Tools: break and continue Statements (The Python Tutorial, 3.14; englisch)
- More Control Flow Tools: else Clauses on Loops (The Python Tutorial, 3.14; englisch)
- More Control Flow Tools: pass Statements (The Python Tutorial, 3.14; englisch)
- More Control Flow Tools: match Statements (The Python Tutorial, 3.14; englisch)
- Built-in Types: str.split (Python 3.14; englisch)
- Built-in Types: String Methods, str.isdigit and str.split (Python 3.14; englisch)
- Compound statements: except* clause (The Python Language Reference, 3.14; englisch)
- Glossary: decorator (Python 3.14; englisch)
- Built-in Functions: all, any (Python 3.14; englisch)
- PEP 8: Style Guide for Python Code (englisch)
- Errors and Exceptions: Raising and Handling Multiple Unrelated Exceptions (The Python Tutorial, 3.14; englisch)
- Built-in Exceptions: ValueError (Python 3.14; englisch)
- Floating-Point Arithmetic: Issues and Limitations (The Python Tutorial, 3.14; englisch)
- Built-in Types: Iterator Types (Python 3.14; englisch)
- collections: deque objects (Python 3.14; englisch)
- Simple statements: Assignment statements (The Python Language Reference, 3.14; englisch)
- Programming FAQ: Why am I getting an UnboundLocalError? (Python 3.14; englisch)
- copy: Shallow and deep copy operations (Python 3.14; englisch)
- Data model: Objects, values and types (Python 3.14; englisch)
- Modules (The Python Tutorial, 3.14; englisch)
- __main__: Top-level code environment (Python 3.14; englisch)
- Input and Output: Saving structured data with json (The Python Tutorial, 3.14; englisch)
- string: Format Specification Mini-Language (Python 3.14; englisch)
- json: JSON encoder and decoder (Python 3.14; englisch)
- Built-in Exceptions: add_note and ExceptionGroup (Python 3.14; englisch)
- contextlib: Utilities for with-statement contexts (Python 3.14; englisch)
- Classes: Generator Expressions (The Python Tutorial, 3.14; englisch)
- Execution model: Resolution of names (The Python Language Reference, 3.14; englisch)
- dataclasses: Data Classes (Python 3.14; englisch)
- enum: Support for enumerations (Python 3.14; englisch)
- Enum HOWTO (Python 3.14; englisch)
- itertools: Functions creating iterators for efficient looping (Python 3.14; englisch)
- functools: Higher-order functions and operations on callable objects (Python 3.14; englisch)
- csv: CSV File Reading and Writing (Python 3.14; englisch)
- pathlib: Object-oriented filesystem paths (Python 3.14; englisch)
- argparse: Parser for command-line options, arguments and subcommands (Python 3.14; englisch)
- sys: System-specific parameters and functions (Python 3.14; englisch)
- re: Regular expression operations (Python 3.14; englisch)
- datetime: Basic date and time types (Python 3.14; englisch)
- logging: Logging facility for Python (Python 3.14; englisch)
- Logging HOWTO (Python 3.14; englisch)
- unittest: Basic concepts (Python 3.14; englisch)
- unittest.mock: mock object library (Python 3.14; englisch)
- doctest: Test interactive Python examples (Python 3.14; englisch)
- Virtual Environments and Packages (Python 3.14; englisch)
- venv: Creation of virtual environments (Python 3.14; englisch)
- Writing your pyproject.toml (Python Packaging User Guide; englisch)
- src layout vs flat layout (Python Packaging User Guide; englisch)
- Installing Packages (Python Packaging User Guide; englisch)
- tomllib: Parse TOML files (Python 3.14; englisch)
- Data model: Basic customization (The Python Language Reference, 3.14; englisch)
- Data model: Emulating numeric types (The Python Language Reference, 3.14; englisch)
- functools: total_ordering (Python 3.14; englisch)
- Data model: Emulating container types (The Python Language Reference, 3.14; englisch)
- collections.abc: Abstract Base Classes for Containers (Python 3.14; englisch)
- Data model: With Statement Context Managers (The Python Language Reference, 3.14; englisch)
- Compound statements: The with statement (The Python Language Reference, 3.14; englisch)
- Descriptor Guide (Python HOWTOs, 3.14; englisch)
- Data model: Implementing Descriptors (The Python Language Reference, 3.14; englisch)
- Data model: Customizing attribute access (The Python Language Reference, 3.14; englisch)
- Data model: Customizing class creation (The Python Language Reference, 3.14; englisch)
- Data model: Metaclasses (The Python Language Reference, 3.14; englisch)
- typing: Support for type hints (Python 3.14; englisch)
- Glossary: type hint (Python 3.14; englisch)
- Built-in Types: Generic Alias Type (Python 3.14; englisch)
- Compound statements: Type parameter lists (The Python Language Reference, 3.14; englisch)
- Simple statements: The type statement (The Python Language Reference, 3.14; englisch)
- typing: Protocol and runtime_checkable (Python 3.14; englisch)
- abc: Abstract Base Classes (Python 3.14; englisch)
- typing: TypedDict (Python 3.14; englisch)
- typing: Literal (Python 3.14; englisch)
- typing: Final und final (Python 3.14; englisch)
- typing: @overload (Python 3.14; englisch)
- typing: TypeIs und TypeGuard (Python 3.14; englisch)
- annotationlib: Functionality for introspecting annotations (Python 3.14; englisch)
- Annotations Best Practices (Python 3.14; englisch)
- threading: Thread-based parallelism (Python 3.14; englisch)
- Python support for free threading (Python HOWTOs, 3.14; englisch)
- What’s new in Python 3.14: free-threaded Python is officially supported (englisch)
- sys: sys._is_gil_enabled (Python 3.14; englisch)
- Glossary: global interpreter lock, race condition (Python 3.14; englisch)
- multiprocessing: Process-based parallelism (Python 3.14; englisch)
- pickle: What can be pickled and unpickled? (Python 3.14; englisch)
- concurrent.futures: Launching parallel tasks (Python 3.14; englisch)
- Coroutines and tasks (Python 3.14; englisch)
- Runners: asyncio.run (Python 3.14; englisch)
- Developing with asyncio (Python 3.14; englisch)
- Subprocesses (Python 3.14; englisch)
- Coroutines and tasks: task groups, cancellation and timeouts (Python 3.14; englisch)
- asyncio exceptions (Python 3.14; englisch)
- Synchronization primitives: Semaphore and Event (Python 3.14; englisch)
- Concurrent Execution (Python 3.14; englisch)
- hashlib: Secure hashes and message digests (Python 3.14; englisch)
- time: time.perf_counter (Python 3.14; englisch)
- Coroutines and tasks: running in threads (Python 3.14; englisch)
- Python support for free threading (Python HOWTOs, 3.14; englisch)
- timeit: Measure execution time of small code snippets (Python 3.14; englisch)
- The Python Profilers: profile, cProfile and pstats (Python 3.14; englisch)
- Design and History FAQ: how lists and dictionaries are implemented (Python 3.14; englisch)
- math.isclose (Python 3.14; englisch)
- Built-in Functions: round (Python 3.14; englisch)
- decimal: Decimal fixed-point and floating-point arithmetic (Python 3.14; englisch)
- fractions: Rational numbers (Python 3.14; englisch)
- weakref: Weak references (Python 3.14; englisch)
- string.templatelib: Support for template string literals (Python 3.14; englisch)
- What's new in Python 3.14: PEP 750, template string literals (englisch)
- sqlite3: How to use placeholders to bind values in SQL queries (Python 3.14; englisch)
- sqlite3: Tutorial and transaction control (Python 3.14; englisch)
- sqlite3: How to use the connection context manager (Python 3.14; englisch)
- ast.literal_eval (Python 3.14; englisch)
- Built-in functions: eval (Python 3.14; englisch)
- pickle: Python object serialization (Python 3.14; englisch)
- subprocess: Security Considerations (Python 3.14; englisch)
- secrets: Generate secure random numbers for managing secrets (Python 3.14; englisch)
- hmac: Keyed-Hashing for Message Authentication (Python 3.14; englisch)
- Packaging Python Projects (Python Packaging User Guide; englisch)