Hinweis zur Privatsphäre: Wenn Sie sich mit Ihrem GitHub-Konto anmelden, werden Ihre Quiz-Versuche in Google Firebase gespeichert, damit Sie Ihren Fortschritt verfolgen können. Diese Daten sind nur für den Kursleiter einsehbar, werden nicht anderweitig weitergegeben und nach Semesterende gelöscht. Frühere Löschung auf Anfrage beim Kursleiter. Möchten Sie anonym bleiben? Nutzen Sie den Gastmodus oder ein GitHub-Konto ohne Ihren echten Namen.
Lädt...
Melden Sie sich an, um Ihren Fortschritt zu speichern und auf allen Geräten zu sehen.
●Fortschritt wird gespeichert
01 Quiz: Moderne Python-Implementierung
Punkte:0 / 20
Fragen-Übersicht
OffenRichtigFalsch
Anleitung
Dieses interaktive Quiz testet Ihr Verständnis der Schlüsselkonzepte aus Chapter 01 (Modern Python Development).
Vorbereitung: Zuerst lesen
Studieren Sie vor diesem Quiz die folgenden Vorlesungsabschnitte:
Selbsteinschätzung: Identifizieren Sie Bereiche, in denen Sie ein gutes Verständnis haben, und Themen, die noch Wiederholung benötigen
Prüfungsvorbereitung: Das Quiz-Format und der Schwierigkeitsgrad spiegeln wider, was Sie in der Abschlussprüfung erwarten können
Sofortiges Feedback: Erhalten Sie sofortige Rückmeldung zu Ihren Antworten, um korrektes Verständnis zu festigen
Aktives Erinnern: Sich selbst zu testen ist eine der effektivsten Lerntechniken
Hinweise:
Jede Frage hat 4 Optionen mit genau einer richtigen Antwort
Versuchen Sie zuerst zu antworten, ohne die Vorlesungsmaterialien zu konsultieren
Melden Sie sich mit GitHub an, um Ihren Fortschritt sitzungsübergreifend zu speichern
Oder fahren Sie als Gast fort (Fortschritt wird nicht gespeichert)
Bewertungsleitfaden
18-20 richtig: Ausgezeichnet! Starkes Verständnis moderner Python-Entwicklungs-Workflows und -Tooling
15-17 richtig: Gutes Verständnis! Wiederholen Sie die Bereiche, die Sie verpasst haben, insbesondere die praktischen Workflow-Konzepte
12-14 richtig: Angemessenes Verständnis. Besuchen Sie die Vorlesungsabschnitte über virtuelle Umgebungen, uv-Workflows und pyproject.toml erneut
Unter 12: Bitte überprüfen Sie die Vorlesung sorgfältig. Konzentrieren Sie sich darauf zu verstehen, warum moderne Tools existieren und welche Probleme sie lösen
Frage1
Pythons Dominanz
Warum gilt Python als die führende Sprache für moderne Softwareentwicklung im Jahr 2025?
✓Richtig!
Richtig: B)
Python dominiert, weil es eine außergewöhnliche Kombination aus menschenlesbarer Syntax, Anwendbarkeit in praktisch jeder Domäne (Web, Data Science, AI, Automatisierung, wissenschaftliches Rechnen) und das umfassendste Ökosystem für AI/ML-Entwicklung bietet. Obwohl es nicht die schnellste Sprache ist (D ist falsch) oder die älteste (A ist falsch), machen seine Produktivität und Vielseitigkeit es zur Nr. 1 für moderne Entwickler. Option C ist falsch, weil viele Sprachen Webentwicklung können.
✗Nicht ganz.
Hinweis:
Denken Sie darüber nach, was Python über mehrere Domänen hinweg einzigartig macht, nicht nur eine einzelne Metrik.
Frage2
Virtuelle Umgebungen
Welches grundlegende Problem lösen virtuelle Python-Umgebungen?
✓Richtig!
Richtig: B)
Virtuelle Umgebungen lösen das Problem der „Dependency Hell”, bei dem verschiedene Projekte unterschiedliche Versionen desselben Pakets benötigen. Ohne virtuelle Umgebungen würde die Installation von pandas 2.1.0 für Projekt B die von Projekt A benötigte Version pandas 1.5.0 überschreiben und Projekt A zum Absturz bringen. Virtuelle Umgebungen schaffen isolierte Bereiche, in denen jedes Projekt seine eigenen Abhängigkeiten hat. Die Optionen A, C und D beschreiben Fähigkeiten, die virtuelle Umgebungen nicht bieten.
✗Nicht ganz.
Hinweis:
Überlegen Sie, was passiert, wenn zwei Projekte unterschiedliche Versionen desselben Pakets benötigen.
Frage3
Virtuelle Umgebungen
Was stellen in der Analogie des Mehrfamilienhauses aus der Vorlesung die „Wohnungen” dar?
✓Richtig!
Richtig: C)
Die Mehrfamilienhaus-Analogie veranschaulicht, wie virtuelle Umgebungen funktionieren: Jede Wohnung (virtuelle Umgebung) hat ihre eigenen Möbel (Pakete), die Bewohner (Projekte) stören sich nicht gegenseitig, und das Gebäude (Ihr Computer) kann viele unabhängige Wohnungen beherbergen. Jede virtuelle Umgebung ist vollständig isoliert, genau wie Wohnungen in einem Gebäude.
✗Nicht ganz.
Hinweis:
Jede Wohnung ist eigenständig und unabhängig von den anderen.
Frage4
Virtuelle Umgebungen
Wenn Sie eine virtuelle Umgebung erstellen, wo werden die installierten Pakete des Projekts tatsächlich gespeichert?
✓Richtig!
Richtig: B)
Virtuelle Umgebungen erstellen eine lokale Verzeichnisstruktur (typischerweise .venv/), die einen site-packages/-Ordner enthält, in dem alle Projektabhängigkeiten installiert werden. Dies ist getrennt von der globalen Python-Installation, was der ganze Sinn der Isolation ist. Die Pakete werden nicht in der Cloud (C) oder in einem komprimierten Format (D) gespeichert, und sie befinden sich nicht in der globalen Installation (A), da dies den Zweck der Isolation zunichtemachen würde.
✗Nicht ganz.
Hinweis:
Suchen Sie nach einer lokalen Verzeichnisstruktur, die das globale Python-Layout widerspiegelt.
Frage5
Modernes Tooling
Wie viele manuelle Schritte mussten Entwickler vor modernen Tools wie uv typischerweise durchführen, um ein Python-Projekt mit Abhängigkeiten einzurichten und auszuführen?
✓Richtig!
Richtig: C)
Der traditionelle Workflow erforderte: (1) python -m venv .venv, (2) Umgebung aktivieren (OS-spezifischer Befehl), (3) pip install --upgrade pip, (4) alle Abhängigkeiten installieren, (5) Code ausführen und (6) deaktivieren, wenn fertig. Das war langsam, manuell und fehleranfällig. Moderne Tools wie uv haben dies in einen einzigen Befehl zusammengefasst: uv run main.py. Option D ist falsch, weil es möglich war, nur umständlich.
✗Nicht ganz.
Hinweis:
Denken Sie an alle einzelnen Befehle: erstellen, aktivieren, upgraden, installieren, ausführen, deaktivieren.
Frage6
pyproject.toml
Was ist der Hauptzweck der pyproject.toml-Datei in modernen Python-Projekten?
✓Richtig!
Richtig: B)
pyproject.toml ist die moderne, standardisierte Konfigurationsdatei, die alles über Ihr Projekt enthält: Metadaten (Name, Version, Autoren), Abhängigkeiten mit Versionsbeschränkungen, Build-System-Konfiguration und Tool-Einstellungen. Sie ersetzt den fragmentierten alten Ansatz mit requirements.txt, setup.py, setup.cfg und anderen separaten Dateien. Sie ist nicht für Quellcode (A), Versionskontrolle (C) oder Leistungsoptimierung (D).
✗Nicht ganz.
Hinweis:
Sie ersetzt mehrere ältere Konfigurationsdateien durch eine einzige standardisierte.
Frage7
pyproject.toml
Was bedeutet der Versionsbezeichner pandas>=2.1.0 in einer pyproject.toml-Datei?
✓Richtig!
Richtig: B)
Der >=-Operator bedeutet „größer oder gleich”, sodass pandas>=2.1.0 pandas 2.1.0, 2.1.1, 2.2.0, 3.0.0 oder jede zukünftige Version erlaubt. Dies wird generell empfohlen, da es Bugfixes und Verbesserungen ermöglicht und gleichzeitig eine Mindestversion sicherstellt. Option A wäre pandas==2.1.0 (exakte Version), C wäre pandas<=2.1.0, und D ist nicht das, was diese Notation bedeutet.
✗Nicht ganz.
Hinweis:
Konzentrieren Sie sich darauf, was der >=-Operator mathematisch bedeutet.
Frage8
Modernes Tooling
Was macht uv deutlich schneller als traditionelle Python-Paketmanagement-Tools wie pip?
✓Richtig!
Richtig: B)
uv erreicht 10-100-fache Geschwindigkeitsverbesserungen, weil es in Rust geschrieben ist (zu nativem Maschinencode kompiliert, nicht interpretiertes Python), parallele Paket-Downloads und -Installationen durchführt, optimierte Datei-I/O nutzt und intelligentes globales Caching implementiert. Es verwendet kein Quantencomputing (A), lädt dieselben notwendigen Pakete wie pip herunter (C), und prüft Abhängigkeiten richtigerweise ordnungsgemäß – das ist Teil dessen, was es besser macht (D ist falsch und wäre gefährlich).
✗Nicht ganz.
Hinweis:
Überlegen Sie, in welcher Sprache uv geschrieben ist und wie es Downloads handhabt.
Frage9
uv-Workflows
Welcher uv-Workflow gilt als der professionellste Ansatz zur Verteilung von Python-Anwendungen?
✓Richtig!
Richtig: C)
Benannte Skripte (wie die Definition von road-viewer = "main:main" in pyproject.toml) stellen den professionellsten Ansatz dar, weil sie saubere, einprägsame CLI-Befehle erstellen, der Standard sind, der von professionellen Tools (pytest, black, ruff) verwendet wird, die Verteilung über Paket-Repositories ermöglichen und Einstiegspunkte klar definieren. Option A ist großartig für die Entwicklung, B ist gut für Debugging, aber C ist das, was produktionsreife Python-Projekte verwenden. Option D ist nie empfehlenswert.
✗Nicht ganz.
Hinweis:
Denken Sie darüber nach, wie professionelle Python-Tools wie pytest oder ruff aufgerufen werden.
Frage10
uv-Workflows
Wenn Sie uv run main.py ausführen, was passiert dabei NICHT?
✓Richtig!
Richtig: D)
uv run arbeitet ausschließlich mit projektlokalen virtuellen Umgebungen und verändert nie Ihre globale Python-Installation – das ist der ganze Sinn des Tools! Es liest pyproject.toml (A), verwaltet das .venv/-Verzeichnis (B) und installiert Abhängigkeiten lokal (C), aber alle Änderungen sind auf das Projekt isoliert. Die globale Python-Installation sauber und unberührt zu halten, ist ein grundlegendes Prinzip professioneller Python-Entwicklung.
✗Nicht ganz.
Hinweis:
Der ganze Sinn virtueller Umgebungen ist die Isolation von der globalen Installation.
Frage11
Professionelles Python
Was ist der HAUPTUNTERSCHIED zwischen „Script Python” und „Production Python”?
✓Richtig!
Richtig: B)
Der wesentliche Unterschied ist nicht die Sprache (beide verwenden Python) oder unbedingt die Leistung, sondern die Engineering-Praktiken: Production Python hat modulare Struktur, ordnungsgemäßes Packaging mit pyproject.toml, Dokumentation, Type Hints, Testing, Versionskontrolle und kann verteilt und von Teams gewartet werden. Script Python kann für eine schnelle Aufgabe funktionieren, aber es fehlt die Struktur, die für langfristige Wartung, Zusammenarbeit und Verteilung benötigt wird.
✗Nicht ganz.
Hinweis:
Konzentrieren Sie sich auf Engineering-Praktiken und Struktur, nicht auf die Sprache selbst.
Frage12
Modernes Tooling
Welcher der folgenden Befehle ist der MODERNE, empfohlene Weg, ein Paket mit uv zu Ihrem Projekt hinzuzufügen?
✓Richtig!
Richtig: C)
uv add package-name ist der moderne, native uv-Befehl, der automatisch pyproject.toml aktualisiert, Abhängigkeiten korrekt auflöst, die Lock-Datei aktualisiert und das Paket installiert. Option A (uv pip install) existiert für Abwärtskompatibilität, aktualisiert aber pyproject.toml nicht automatisch. Option B verwendet pip ohne die Vorteile von uv. Option D ist manuell und fehleranfällig. Die Vorlesung betont ausdrücklich die Verwendung nativer uv-Befehle gegenüber pip-kompatiblen.
✗Nicht ganz.
Hinweis:
Der moderne Befehl sollte Ihre Projektkonfigurationsdatei automatisch aktualisieren.
Frage13
Professionelles Python
Die Vorlesung lässt Sie eine gezippte Projektdatei herunterladen, obwohl Git/GitHub besser ist. Warum diese pädagogische Entscheidung?
✓Richtig!
Richtig: B)
Die Vorlesung verwendet bewusst eine ZIP-Datei als Lehrwerkzeug – Sie beginnen mit dem „alten Weg”, initialisieren selbst Git, erstellen ein GitHub-Repository und verbinden/pushen. Diese praktische Erfahrung lehrt Sie, wie Repositories von Grund auf erstellt werden, was Ihnen hilft zu verstehen, was „unter der Haube” passiert, wenn Sie später bestehende Repos klonen. Es ist wie Fahrradfahren mit Stützrädern lernen, bevor man bei der Tour de France mitmacht.
✗Nicht ganz.
Hinweis:
Denken Sie darüber nach, warum es eine bessere Lernerfahrung sein kann, etwas zuerst auf die schwierige Art zu tun.
Frage14
Python-Interna
In welcher Reihenfolge sucht Python nach einem Paket beim Import?
✓Richtig!
Richtig: C)
Python sucht in dieser bestimmten Reihenfolge: (1) Aktuelles Verzeichnis, in dem das Skript ausgeführt wird, (2) site-packages/ der virtuellen Umgebung, wenn ein venv aktiv ist, (3) site-packages/ des System-Python für globale Installationen, (4) Standardbibliothek für eingebaute Module. Diese Reihenfolge ist der Grund, warum virtuelle Umgebungen funktionieren – indem sie ihre site-packages/ früher im Suchpfad platzieren, werden dort installierte Pakete vor globalen gefunden.
✗Nicht ganz.
Hinweis:
Die Suche beginnt am lokalsten Ort und bewegt sich nach außen.
Frage15
Pythons Dominanz
Welcher Faktor ist laut der Vorlesung KEIN Hauptgrund für Pythons Dominanz?
✓Richtig!
Richtig: C)
Python ist NICHT die schnellste Sprache – kompilierte Sprachen wie C++ und Rust sind viel schneller. Python dominiert wegen der Lesbarkeit (A), Vielseitigkeit über alle Domänen hinweg (B) und dem enormen Ökosystem (D), plus der AI/ML-Revolution, bei der Python der De-facto-Standard ist. Python gewinnt bei Entwicklerproduktivität und Ökosystemstärke, nicht bei roher Ausführungsgeschwindigkeit. Der Kompromiss ist beabsichtigt: langsamere Ausführung, aber schnellere Entwicklung.
✗Nicht ganz.
Hinweis:
Python ist für viele Stärken bekannt, aber rohe Geschwindigkeit gehört nicht dazu.
Frage16
Professionelles Python
In Schritt 3 der Einrichtungsanleitung werden Sie gebeten, den Autorennamen in pyproject.toml durch Ihren GitHub-Benutzernamen zu ersetzen. Warum ist das wichtig?
✓Richtig!
Richtig: B)
Die Aktualisierung des Autorenfelds lehrt Sie ordnungsgemäße Zuschreibung in der Softwareentwicklung. Wenn Sie Pakete veröffentlichen oder zu Open Source beitragen, ist korrekte Autorenschaft entscheidend für Anerkennung, Lizenzierung, rechtliche Compliance und professionelle Reputation. Der Code funktioniert auch ohne Änderung (A ist falsch), GitHub erzwingt keine Autorenübereinstimmung (C ist falsch), und es hat einen klaren pädagogischen Zweck (D ist falsch). Es geht darum, frühzeitig professionelle Gewohnheiten zu entwickeln.
✗Nicht ganz.
Hinweis:
Denken Sie darüber nach, warum Autorenschaft in Open Source und professioneller Software wichtig ist.
Frage17
Modernes Tooling
Die Vorlesung beschreibt drei Zeitalter des Python-Paketmanagements. Was repräsentiert das „Moderne Zeitalter”?
✓Richtig!
Richtig: C)
Die Vorlesung zeichnet drei Zeitalter nach: Antike (pip + venv), Mittelalter (Poetry/Pipenv) und Moderne (uv). Das Moderne Zeitalter ist gekennzeichnet durch uvs revolutionäre Geschwindigkeit (in Rust geschrieben), vereinheitlichtes Tooling (ein Tool ersetzt viele), ordnungsgemäße Abhängigkeitsauflösung, automatische Lock-Dateien und intelligentes Caching. Die Optionen A und B sind frühere Zeitalter, und D ist Teil des antiken Ansatzes.
✗Nicht ganz.
Hinweis:
Das Moderne Zeitalter wird durch ein bestimmtes Tool definiert, das in einer kompilierten Sprache geschrieben ist.
Frage18
Professionelles Python
Wenn Sie road-viewer = "main:main" im Abschnitt [project.scripts] definieren, was bedeutet die Syntax?
✓Richtig!
Richtig: A)
Die Syntax befehlsname = "modul:funktion" erstellt einen CLI-Befehl, der eine bestimmte Funktion aufruft. Also bedeutet road-viewer = "main:main": Wenn jemand den road-viewer-Befehl ausführt, importiert Python das main-Modul (main.py) und führt dessen main()-Funktion aus. Dies ist der professionelle Weg, um Kommandozeilen-Tools zu erstellen, und wird von allen großen Python-CLI-Anwendungen wie pytest, black und ruff verwendet.
✗Nicht ganz.
Hinweis:
Der Doppelpunkt trennt den Modulnamen vom Funktionsnamen.
Frage19
uv-Workflows
Was ist der Unterschied zwischen uv tool install ruff und uv add ruff?
✓Richtig!
Richtig: B)
uv tool install ruff installiert das Tool global und macht es überall auf Ihrem System für jedes Projekt verfügbar (wie die Installation von pytest, black oder anderen Entwicklungstools, die Sie projektübergreifend verwenden). uv add ruff fügt es als Abhängigkeit des aktuellen Projekts hinzu und installiert es in der virtuellen Umgebung dieses Projekts. Beide haben gültige Anwendungsfälle: globale Tools für Entwicklungsdienstprogramme, Projektabhängigkeiten für Bibliotheken, die Ihr Code importiert. Sie sind nicht gleich (A), keines ist veraltet (C), und D ist falsch.
✗Nicht ganz.
Hinweis:
Eines ist systemweit, das andere ist projektspezifisch.
Frage20
Professionelles Python
Was ist laut der Vorlesungseinleitung der Hauptunterschied zwischen „ein Skript schreiben, das funktioniert” und „professionelle Software bauen”?
✓Richtig!
Richtig: B)
Die Kernaussage der Vorlesung ist, dass professionelles Software-Engineering nicht darum geht, Code zu schreiben, der „einfach funktioniert” – es geht darum, wartbare, skalierbare, kollaborative, ordnungsgemäß strukturierte und gut ausgestattete Systeme zu schaffen. Dazu gehören Versionskontrolle, ordnungsgemäßes Abhängigkeitsmanagement, Testing, Dokumentation, reproduzierbare Umgebungen und professionelle Workflows. Die Größe allein (C) bestimmt nicht die Professionalität, Skripte können professionell eingesetzt werden (D ist zu eng gefasst), und dieselben Sprachen werden verwendet (A ist falsch).
✗Nicht ganz.
Hinweis:
Professionelle Software wird durch ihre Engineering-Praktiken definiert, nicht durch ihre Größe oder ihr Publikum.