Einführung in Python¶
Wie dieses Skript lesen¶
Das Skript besteht aus zwei Sorten Kapiteln, und der Unterschied ist praktisch relevant:
Markdown-Kapitel (Teil 1, Packaging, Übungsblätter) enthalten Codeblöcke, bei denen die erwartete Ausgabe als Kommentar direkt darunter steht — so wie hier:
print(2 + 3)
# Output: 5
Diese Blöcke werden von einem Skript des Projekts regelmäßig ausgeführt und mit der angegebenen Ausgabe verglichen; dieser hier ist beim letzten Lauf mitgeprüft worden. Was in einem solchen Block steht, stimmt also — und Sie können ihn in Ihren eigenen Interpreter kopieren. Blöcke, die absichtlich fehlschlagen, Eingaben erwarten oder Netz brauchen, sind von der Prüfung ausgenommen.
Notebooks (die meisten Kapitel in Teil 2 und 3, alle Praxisbeispiele) sind ausführbar. Die gespeicherten Ausgaben sind mit abgedruckt, damit man das Buch auch als HTML oder PDF lesen kann, ohne etwas zu starten. Wer selbst experimentieren will, lädt die
.ipynb-Datei herunter; die erste Zelle jedes Notebooks richtet die Umgebung selbst ein, jedes Notebook ist für sich allein lauffähig.
Lesereihenfolge. Teil 1 baut aufeinander auf und wird von vorn gelesen. Teil 2 (Werkzeuge)
und Teil 3 (Anwendungsentwicklung) sind weitgehend unabhängig voneinander — dort kann man das
Kapitel lesen, das gerade gebraucht wird. Die Praxisbeispiele gehören inhaltlich zur Vorlesung
und ergeben in der Reihenfolge practical-0, dann practical-1 am meisten Sinn.
Wenn ein Begriff fehlt, steht er wahrscheinlich im Glossar am Ende von Teil 1 — mit einem Satz Erklärung und einem Link in das Kapitel, das ihn einführt.
Setup in 10 Minuten¶
Sie brauchen genau ein Werkzeug: uv. Es installiert Python, verwaltet Abhängigkeiten
und startet Programme, und ersetzt damit pip, virtualenv, pipx und poetry
(ausführlich im Kapitel Packaging).
# 1. uv installieren
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/macOS
# Windows: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 2. Python holen (dieses Skript wird mit 3.14 gebaut und geprüft; 3.13 genügt für fast alles)
uv python install 3.14
# 3. Ein Projekt anlegen
uv init mein-projekt && cd mein-projekt
uv add requests # eine Abhängigkeit hinzufügen
uv run main.py # das Programm starten
# 4. Zum Ausprobieren: eine interaktive Sitzung
uv run pythonSchritt 3 legt eine pyproject.toml, ein uv.lock und eine virtuelle Umgebung an, ohne dass
Sie eine davon von Hand anfassen müssen. uv run sorgt dafür, dass Ihr Programm immer die
Umgebung des Projekts benutzt — das ist der Befehl, der Ihnen die meisten Umgebungsprobleme
erspart.
Ein Kapitel dieses Skripts selbst ausführen: die .ipynb-Datei herunterladen, dann
uv run --with jupyterlab jupyter labEinen Editor wählen. Zum Anfangen genügt jeder Texteditor mit Python-Unterstützung; VS Code und PyCharm sind die verbreitetsten. Die Unterschiede — und warum ein Editor überhaupt weiß, was Ihr Code bedeutet — stehen im Kapitel IDEs und Editoren.
Falls Ihnen Programmiergrundlagen fehlen, ist dieser Kurs die falsche Reihenfolge: Er setzt Java-Kenntnisse voraus und erklärt Python als zweite Sprache. Zum Aufholen eignen sich python-kurs.eu (deutschsprachig, von Grund auf) und die Scientific Python Lectures (englisch, mit Blick auf Datenverarbeitung).
Rahmen der Vorlesung¶
Inhaltliche Voraussetzung:¶
Die Module “Programmierung” und “Programmierpraktikum 1”, die mit der Sprache Java die folgenden Kompetenzbereiche enthalten:
Primitive Datentypen und Variablen
Kontrollstrukturen
Arrays
Standardein- und -ausgabe, Dateien
Programmstrukturen im Speicher (Heap, Stack)
Rekursion
Suchen und Sortieren (lineare Suche, binäre Suche, Insertion Sort, Mergesort)
Dynamische Datenstrukturen (Listen, Binäre Suchbäume, Hashing)
Objektorientierte Programmierung
Fehlerbehandlung / Debugging
Nutzung von IDEs
Versionsverwaltung
Code-Qualität
Test-Driven Development
Außerdem, wenn die Teilnehmer*innenzahl ansonsten zu groß ist: das Modul “Data Science”, in dem bereits erste Skripte in Python geschrieben wurden.
Ablauf¶
Übungsbetreuung im Sommersemester 2026: Renato Sprenger-Vuković.
In der Vorlesung wird zu jeder Sitzung ein Abschnitt des Skripts bearbeitet (den jede*r zuvor bereits gelesen haben sollte), den wir kurz gemeinsam überfliegen und dann die Konzepte teilweise umsetzen in eine Anwendung, die im Laufe der Vorlesung entwickelt wird. In den Übungsaufgaben werden die gleichen Abschnitte anhand einfacherer Aufgaben, teilweise isoliert voneinander geübt. Am Ende der Vorlesung ist eine große Anwendung entwickelt worden, in der die meisten Konzepte aus der Vorlesung umgesetzt sind und das Abschlussprojekt des Moduls ist ebenfalls eine große Anwendung, in der die Konzepte aus der Vorlesung möglichst sinnvoll umgesetzt worden sind.
Die vier Anwendungen¶
Also beschäftigt sich der/die typische Student*in des Kurses mit vier Anwendungen. Sie laufen nebeneinander her, und jede hat einen anderen Zweck:
| Anwendung | wo sie entsteht | wozu sie da ist | im Skript |
|---|---|---|---|
| Wirtschaftssimulation | in der Vorlesung, gemeinsam | zeigt jedes neue Konzept sofort an einem wachsenden Programm | practical-0, practical-1 |
| CYOA (Choose-your-own-Adventure) | Übungsblätter 1–5 | Ihr eigenes Programm von der ersten Zeile an — klein genug, um es ganz zu überblicken | Blätter 01–05, Testbeispiele in Testing |
| Wesen (und BamBam) | Übungsblätter 4–6, 8, 12 | fremder, alter Code, den man zum Laufen bringen, verstehen und verbessern muss | Blätter 04, 05, 06, 08, 12 |
| Abschlussprojekt | ab Blatt 6, individuell | die Prüfungsleistung; alles andere ist Vorbereitung darauf | Hausarbeit |
Dazu kommt der Koffein-Tracker als durchgehendes Beispiel für Nutzeroberflächen — dieselbe Anwendung als Kommandozeile, als Terminal-Oberfläche und als Web-API, damit der Unterschied sichtbar wird (User Interfaces).
Der Ablauf im Semester¶
Neben den wöchentlichen Übungsaufgaben gibt es einige Termine, an denen etwas abgegeben oder gezeigt wird. Sie stehen hier zusammen, damit man nicht in zwölf Blättern danach suchen muss:
| wann | was |
|---|---|
| laufend | Anwesenheitsaufgaben: die Übungsaufgaben der Woche, bearbeitet in der Präsenzübung |
| viermal im Semester | eigene Bearbeitung erklären — wer den eigenen Code in der Übungsgruppe nicht erklären kann, gilt für die Woche als nicht mitarbeitend. Diese Voraussetzung muss erfüllt sein, bevor ein Thema für das Abschlussprojekt festgelegt werden kann |
| Blatt 6 | Bewertungskriterien für das Abschlussprojekt werden gemeinsam erarbeitet |
| Blatt 7 | Projektskizze abgeben (nicht verbindlich) und zwei fremde Skizzen bewerten |
| Blatt 8 | Datenstrukturen und Schnittstellen des eigenen Projekts festlegen; Peer-Feedback über ILIAS |
| Blatt 10 | fremde Implementierungspläne bewerten |
| Blatt 11 | Definition of Done für das eigene Projekt aufschreiben; Lauf aus frischem Klon |
| danach | Hausarbeit: Programmierprojekt plus Projektbericht, Bearbeitungszeitraum ca. 4 Wochen — Kriterien und Notenmodell in Hausarbeit |
Kurzgeschichte Python¶
1991 BDFL Guido van Rossum veröffentlicht Python 0.9.0 als Nachfolger von ABC (Weitere Einflüsse: Modula-3, C, Haskell, Perl)
2000 Python 2.0 erscheint, die Entwicklung ist Community-getrieben
2008 Python 3.0
2018 BDFL tritt ab, ein Kommittee trifft nun die Entscheidungen über Python
2020 EOL für Python 2 (letzte Version: 2.7.18)
Literatur¶
Das Offizielle Python-Tutorial richtet sich, wie dieser Kurs, an Menschen, die bereits Programmieren können.
Vielleicht ist das Buch “Fluent Python” von Luciano Ramalho eine gute Empfehlung nach diesem Kurs, wenn man noch etwas tiefer in Python einsteigen möchte. Auch “CPython Internals” von Anthony Shaw könnte interessant sein.