Willkommen zu den Python Live Sessions von StackFuel! Diese Sessions sind als begleitendes, freiwilliges Angebot für alle Teilnehmenden der StackFuel-Kurse konzipiert. Da die meisten Trainings auf Python aufbauen, vermitteln wir hier systematisch die grundlegenden Konzepte der Programmiersprache.
Die Sessions sind in zwei parallele Bereiche unterteilt:
- Python Basics: Grundlagen für Data Analytics (DAN) und Data Science (DSC) Teilnehmende
- Python Advanced: Vertiefende Konzepte für Weiterführende Programmierung (WPP), Objektorientierte Programmierung (OOP) und Data Science Portfolio Projekt (DPP) Teilnehmer
Jede Live Session dauert ca. 1 Stunde und behandelt ein konkretes Thema. Die Basics-Sessions verwenden Jupyter Notebooks, während die Advanced-Sessions auch mit Python-Skripten und Modulen arbeiten, um ein realistisches Bild der Softwareentwicklung zu vermitteln.
Wichtiger Hinweis: Die Konzepte bauen stark aufeinander auf - ein regelmäßiger Besuch der Sessions ist daher empfehlenswert.
Die Notebooks und Python Scripte können im DataLab hochgeladen werden um die Inhalte nachzuarbeiten. Allerdings kann es dazu kommen, dass aufgrund von Versionskonflikten einige Funktionen nicht im DataLab verfügbar sind. Aus diesem Grund empfehlen wir eine eigene Entwicklungsumgebung mit aktuellen Paketen einzurichten.
Für die optimale Teilnahme an den Sessions empfehlen wir:
- IDE: Visual Studio Code mit Python-Extension - Professionelle Entwicklungsumgebung mit ausgezeichneter Python-Unterstützung
- Package Manager: uv - Moderner, schneller Python Package Manager für Dependency Management und virtuelle Umgebungen
Zu diesen Tools gibt es in der ersten Python Advanced Session eine Einführung.
- 1. Einfache Datentypen
- 2. Einfache Datenstrukturen
- 3. Kontrollstrukturen
- 4. Funktionen
- 5. Iteratoren, Generatoren und Lazy Evaluation
- 6. Algorithmen
- 7. Code-Qualität und Refactoring
- 8. Erweiterte Python Syntax (Syntactic Sugar)
- 1. Technisches Setup
- 2. Objektorientierte Programmierung - Grundlagen
- 3. Higher Order Functions und Dekoratoren
- 4. Python Data Model
- 5. Vererbung und Komposition
- 6. Fehlerbehandlung mit Exceptions
- 7. Unit Testing
- 8. Erweiterte OOP-Konzepte
Die Basics Sessions vermitteln die fundamentalen Sprachkonstrukte von Python, die für die Datenanalyse unerlässlich sind. Sie richten sich primär an Teilnehmende der Data Analytics (DAN) und Data Science (DSC) Kurse.
Diese Session führt in die grundlegenden Datentypen von Python ein, die das Fundament für alle weiteren Programmierkonzepte bilden.
- Expressions: Ausdrücke und deren Auswertung
- Variablen: Speicherung und Benennung von Werten
bool: Wahrheitswerte für logische Aussagenint: Ganzzahlen ohne Dezimalstellenfloat: Gleitkommazahlen für mathematische Berechnungenstr: Zeichenketten für TextdatenNone: Spezieller Typ für nicht vorhandene Werte
Hier lernst du die wichtigsten Datenstrukturen kennen, um mehrere Werte effizient zu organisieren und zu verwalten.
tuple: Unveränderliche, geordnete Sammlung von Elementenlist: Änderbare, geordnete Sammlung von Elementenset: Ungeordnete Sammlung von eindeutigen Elementendict: Sammlung von Schlüssel-Wert-Paaren- Eigenschaften von Datenstrukturen:
- Iterable: Durchlaufbare Objekte
- Mutable vs. Immutable: Änderbare vs. unveränderliche Datentypen
Kontrollstrukturen ermöglichen es, den Programmfluss zu steuern und komplexere Logik zu implementieren.
if/else: Bedingte Ausführung von Codeblöckenpass: Platzhalter für leere Codeblöckewhile: Wiederholung von Codeblöcken solange Bedingungen wahr sindfor: Iteration über Elemente von Sequenzenbreak/continue: Unterbrechung und Fortsetzung von Schleifen
Funktionen sind essentiell für die Strukturierung und Wiederverwendung von Code. Diese Session vermittelt die Grundlagen der Funktionsdefinition und -verwendung.
def: Definition von Funktionen zur Wiederverwendung von Codereturn: Rückgabe eines Wertes aus einer Funktion- Funktionsaufrufe: Ausführung definierter Funktionen
- Parameter/Argumente: Übergabe von Werten an Funktionen
- Default-Werte: Standardwerte für Parameter
- Positional Parameters: Positionelle Parameterübergabe
- Named Parameter: Bennante Parameterübergabe
- Funktionen Höherer Ordnung: eingebaute Funktionen in Python
Hier lernst du effiziente Methoden zur Verarbeitung großer Datenmengen und speicherschonende Programmierung kennen.
- Iteratoren: Objekte für schrittweise Durchlaufung von Sequenzen
- Generatoren: Speicher-effiziente Ergebniserzeugung mit
yield - Generator Comprehensions: Kompakte Generator-Erstellung
- Built-in Funktionen für Iteration:
range,map,filter,zipenumerate,reversed
Diese Session führt in algorithmisches Denken ein und zeigt, wie komplexere Probleme systematisch gelöst werden können.
- Algorithmische Problemlösung: Strukturierte Herangehensweise an Programmieraufgaben
- Praktische Implementierungen: Euklidischer Algorithmus
- Klassische Algorithmen: Sortier- und Suchalgorithmen als Beispiele
- Rekursion: Funktionen, die sich selbst aufrufen
Ankündigung: Lerne, wie du mithilfe von Refactoring und den PEP8-Konventionen deinen Python-Code klarer, konsistenter und wartbarer gestaltest – mit praktischen Beispielen rund um einen Sudoku-Löser. Diese Live-Session richtet sich an alle, die bereits Grundkenntnisse in Python haben und ihren Code auf das nächste Level bringen möchten.
- PEP 8: Der offizielle Style Guide für Python-Code
- Namenskonventionen: Best Practices für aussagekräftige Bezeichner
- Dokumentation: Schreiben verständlicher und nützlicher Code-Dokumentation
- Code-Refactoring: Verbesserung bestehenden Codes ohne Funktionsänderung
- Praktisches Projekt: Sudoku-Implementierung zur Anwendung aller gelernten Konzepte
Diese Session stellt elegante Python-Sprachkonstrukte vor, die Code kompakter und lesbarer machen.
- Comprehensions: Elegante Erzeugung von Datenstrukturen
- Lambda-Funktionen: Kurzdefinition anonymer Funktionen
- Context Manager: Ressourcenmanagement mit
with-Statement - Tuple Unpacking: Entpacken von Tupeln und der
*-Operator - String Formatting:
f-stringsund erweiterte Formatierungsmöglichkeiten - Moderne Python-Features:
- Ternary Operator:
x if condition else y - Walrus-Operator:
:=für Variablenzuweisung in Expressions - Chaining von Operatoren:
a < b < cstatta < b and b < c - Structural Pattern Matching:
match-caseStatements - Type Hints: Typannotationen für bessere Code-Dokumentation
- Ternary Operator:
Die Advanced Sessions vertiefen das Python-Wissen und behandeln fortgeschrittene Konzepte der objektorientierten und funktionalen Programmierung. Sie richten sich an Teilnehmende der Kurse Weiterführende Programmierung (WPP), Objektorientierte Programmierung (OOP) und Portfolio Projekt (DPP). Es sind aber alle interessierten Teilnehmenden herzlich willkommen.
Diese Session bereitet Dich auf die professionelle arbeit mit Python vor, indem sie die Einrichtung einer modernen Entwicklungsumgebung und die Nutzung von virtuellen Umgebungen behandelt.
- Visual Studio Code Setup: Konfiguration der IDE für optimale Python-Entwicklung
- Virtuelle Umgebungen mit uv: Moderne Abhängigkeitsverwaltung und Projekt-Isolation
Diese Session führt in die Grundkonzepte der objektorientierten Programmierung ein.
- Klassen und Objekte: Grundlegende OOP-Konzepte
- Klassendefinition und Instanziierung
- Das
self-Argument verstehen
- Attribute: Eigenschaften von Objekten
- Methoden: Funktionen innerhalb von Klassen
- Special Methods: Implementierung von Operatoren
__add__,__sub__,__mul__etc. zum Überladen von Operatoren__str__,__repr__für String-Repräsentation
Diese Session behandelt fortgeschrittene Funktionskonzepte und die Decorator-Syntax von Python.
- Variable Argumentlisten: Flexible Funktionsparameter
*args: Variable Anzahl positionaler Argumente**kwargs: Variable Anzahl benannter Argumente
- First-Class Functions: Funktionen als Callables mit
__call__-Methode - Closures: Verschachtelte Funktionen und Zustandsspeicherung
- Dekoratoren: Funktionserweiterung mit
@-Syntax- Grundlagen der Decorator-Implementierung
functools.wraps: Metadaten-Erhaltung
- Built-in Dekoratoren:
@cache: Memoization für Funktionen@property: Getter/Setter-Implementierung@classmethod: Klassenmethoden@staticmethod: Statische Methoden
Diese Session erklärt, wie Sie eigene Klassen nahtlos in Python's Ökosystem integrieren können.
- Iteration Protocol:
__iter__und__next__für eigene Iteratoren
- Container Types:
- Sequences:
__getitem__,__setitem__,__delitem__ - Mappings:
__contains__für Zugehörigkeitstests
- Sequences:
- Numerische Operationen:
- Arithmetische Operatoren:
__add__,__sub__,__mul__,__truediv__ - Vergleichsoperatoren:
__eq__,__lt__,__gt__etc.
- Arithmetische Operatoren:
Diese Session behandelt fortgeschrittene OOP-Konzepte für die Strukturierung komplexer Anwendungen.
- Vererbung: Wiederverwendung und Erweiterung von Klassen
super(): Zugriff auf Parent-Class-Methoden- Mehrfachvererbung: Komplexe Klassenhierarchien
- MRO (Method Resolution Order): Methodenauflösung verstehen
- Komposition: Alternative zu Vererbung durch Objektzusammensetzung
Diese Session vermittelt die Grundlagen der Fehlerbehandlung in Python, um robuste und fehlertolerante Anwendungen zu entwickeln.
- Exceptions: Fehlerbehandlung mit
try/except-Blöcken - Eigene Exceptions: Definition benutzerdefinierter Fehlertypen
assert-Anweisungen: Einfache Fehlerüberprüfung und Debugging-Hilfe
Diese Session führt in die Praxis des Unit Testings ein, um die Qualität und Zuverlässigkeit von Python-Code sicherzustellen.
- Unittest Framework: Einführung in das
pytest-Modul - Einfache Testfälle schreiben: Strukturierung von Tests für Funktionen und Klassen
- Fixture und parametrisierte Tests: Wiederverwendbare Testdaten und Testvariationen
Diese abschließende Session stellt moderne Python-Features für elegante Klassendesigns vor.
- Dataclasses: Vereinfachte Datenklassen mit
@dataclass - Enumerations: Typisierte Konstanten mit
enum.Enum - Named Tuples: Strukturierte, unveränderliche Datentypen
- Collections-Erweiterungen:
defaultdict: Dictionaries mit StandardwertenCounter: Automatische Häufigkeitszählung
"Python Crash Course" von Eric Matthes
- Praktische Projekte und grundlegende Konzepte für Anfänger
- Ideal für Sessions 1-4 (Datentypen bis Funktionen)
"Automate the Boring Stuff with Python" von Al Sweigart
- Automatisierung alltäglicher Aufgaben, sehr praxisorientiert
- Kostenlos verfügbar unter automatetheboringstuff.com
- Perfekt für Sessions 3-6 (Kontrollstrukturen bis Syntactic Sugar)
"Python 3: Das umfassende Handbuch" von Ernesti & Kaiser
- Deutschsprachiges Standardwerk für systematische Lerner
- Umfassende Abdeckung aller Basics Sessions (1-8)
"Python Tricks: The Book" von Dan Bader
- Python-Idiome und Best Practices für Fortgeschrittene
- Hervorragend für Dekoratoren, OOP-Grundlagen und Code-Qualität
"Effective Python" von Brett Slatkin
- 90 konkrete Tipps für besseren Python-Code
"Fluent Python" von Luciano Ramalho
- Tiefgehende Erläuterung fortgeschrittener Python-Konzepte
- Unverzichtbar für tiefes Python-Verständnis (2. Auflage empfohlen)
- Python Documentation (docs.python.org) - Offizielle Referenz und Tutorials
- Real Python (realpython.com) - Hochwertige Tutorials zu allen Themen
- PEP 8 - Style Guide for Python Code (essentiell für Code-Qualität)
- Raymond Hettinger PyCon Talks (YouTube) - Insights von Python Core Developern
- James Powell: So you want to be a Python expert? | PyData Seattle 2017 YouTube - Inspirierende Einblicke in fortgeschrittene Python-Konzepte
- Codewars (codewars.com) - Programmier-Challenges zur Übung
- LeetCode (leetcode.com) - Algorithmus- und Datenstruktur-Übungen