Skip to content

Kapitel 21: Python Fortgeschrittene Themen und Richtungen

🎯 Lernziele

In diesem Kapitel wirst du:

  • Verschiedene Fortgeschrittenenbereiche in Python kennenlernen
  • Überlegungen zur Python-Versionswahl verstehen
  • Unternehmensentwicklungsstandards verstehen
  • Ressourcen für weiteres Lernen finden

21.1 Fortgeschrittene Lernsrichtungen

📊 Richtung 1: Datenanalyse

Kernfähigkeiten:

  • Pandas: Datenbearbeitung und -analyse
  • NumPy: Numerische Berechnungen
  • Matplotlib/Seaborn: Datenvisualisierung
  • Scikit-learn: Machine Learning Grundlagen

Lernpfad:

python
# Beispiel: Einfache Datenanalyse mit Pandas
import pandas as pd
import matplotlib.pyplot as plt

# Daten laden
daten = pd.read_csv("daten.csv")

# Grundlegende Statistiken
print(daten.describe())

# Daten visualisieren
daten["spalte"].hist()
plt.show()

Projektideen:

  1. Verkaufsdatenanalyse: Analysiere Verkaufsdaten, um Trends zu finden
  2. Aktienmarktanalyse: Verwende Pandas, um Aktienkurse zu analysieren
  3. Umfragenanalyse: Visualisiere Umfragedaten mit Matplotlib

🌐 Richtung 2: Backend-Entwicklung

Kernfähigkeiten:

  • Flask/Django: Web-Frameworks
  • RESTful APIs: API-Entwicklung
  • Datenbanken: SQLite/MySQL/PostgreSQL
  • Authentifizierung: Benutzerverwaltung

Lernpfad:

python
# Beispiel: Einfache Flask-Anwendung
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/api/beispiel", methods=["GET"])
def beispiel_api():
    daten = {"nachricht": "Hallo Welt!"}
    return jsonify(daten)

if __name__ == "__main__":
    app.run(debug=True)

Projektideen:

  1. Aufgabenverwaltungssystem: Erstelle eine Web-Anwendung zur Verwaltung von Aufgaben
  2. Blog-System: Entwickle ein einfaches Blog-System mit Benutzerauthentifizierung
  3. Wetter-API: Erstelle eine API, die Wetterdaten abruft und zurückgibt

🕷️ Richtung 3: Web-Crawling

Kernfähigkeiten:

  • Requests: HTTP-Anfragen
  • BeautifulSoup: HTML-Parsing
  • Scrapy: Fortgeschrittenes Crawling
  • Selenium: Browser-Automatisierung

Lernpfad:

python
# Beispiel: Einfaches Web-Crawling mit BeautifulSoup
import requests
from bs4 import BeautifulSoup

url = "https://beispiel.de"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")

# Alle Links extrahieren
links = soup.find_all("a")
for link in links:
    print(link.get("href"))

Projektideen:

  1. Nachrichtenaggregator: Crawle Nachrichten-Websites und fasse Schlagzeilen zusammen
  2. Preisüberwachung: Überwache Produktpreise auf E-Commerce-Websites
  3. Wetterdaten-Crawler: Sammle Wetterdaten von verschiedenen Quellen

🤖 Richtung 4: Automatisierung

Kernfähigkeiten:

  • Os: Dateisystemoperationen
  • Shutil: Dateien kopieren/verschieben
  • Schedule: Automatisierung von Aufgaben
  • Email: Automatisierung von E-Mails

Lernpfad:

python
# Beispiel: Einfache Dateiautomatisierung
import os
import shutil
from datetime import datetime

def dateien_organisieren(quell_ordner, ziel_ordner):
    """Organisiert Dateien nach Erweiterung"""
    for dateiname in os.listdir(quell_ordner):
        if os.path.isfile(os.path.join(quell_ordner, dateiname)):
            erweiterung = dateiname.split(".")[-1]
            ziel_pfad = os.path.join(ziel_ordner, erweiterung)
            
            if not os.path.exists(ziel_pfad):
                os.makedirs(ziel_pfad)
            
            shutil.move(
                os.path.join(quell_ordner, dateiname),
                os.path.join(ziel_pfad, dateiname)
            )
            print(f"Datei {dateiname} nach {ziel_pfad} verschoben")

# Verwendung
dateien_organisieren("./downloads", "./organisiert")

Projektideen:

  1. Automatisierte Datensicherung: Erstelle ein Skript zur automatischen Datensicherung
  2. E-Mail-Automatisierung: Sende automatische E-Mail-Benachrichtigungen
  3. Berichterstattungsautomatisierung: Erstelle automatisch Berichte aus Daten

21.2 Python-Versionsunterschiede

🔢 Python 2 vs. Python 3 (Historisch)

Wichtig zu wissen (obwohl Python 2 veraltet ist):

AspektPython 2Python 3
printprint "Hallo"print("Hallo")
Division3 / 2 = 1 (Ganzzahl)3 / 2 = 1.5 (Fließkomma)
UnicodeASCII (Standard)Unicode (Standard)
xrange()VorhandenNicht vorhanden (verwende range())
raw_input()VorhandenNicht vorhanden (verwende input())

🆕 Python 3.x Versionsunterschiede

Python 3.6+ (Empfohlen):

  • f-strings: f"Hallo {name}"
  • Typ-Hinweise: def funktion(x: int) -> int:
  • Asynchrone Programmierung: async/await

Python 3.8+:

  • Walrus-Operator: if (n := len(liste)) > 10:
  • Nur positionelle Parameter: def funktion(x, y, /, z):

Python 3.10+:

  • Strukturiertes Pattern Matching: match/case
python
# Beispiel: f-strings (Python 3.6+)
name = "Welt"
print(f"Hallo {name}!")  # Hallo Welt!

# Beispiel: Walrus-Operator (Python 3.8+)
if (n := len(["a", "b", "c"])) > 2:
    print(f"Liste hat {n} Elemente")  # Liste hat 3 Elemente

# Beispiel: Strukturiertes Pattern Matching (Python 3.10+)
befehl = "beenden"
match befehl:
    case "beenden":
        print("Programm wird beendet...")
    case "speichern":
        print("Datei wird gespeichert...")
    case _:
        print("Unbekannter Befehl")

21.3 Unternehmensentwicklungsstandards

📏 Code-Standards

  1. Befolge PEP 8:

    • 4 Leerzeichen für Einrückung
    • Maximal 79 Zeichen pro Zeile
    • Klassennamen: MeineKlasse
    • Funktions-/Variablennamen: meine_funktion
  2. Verwende Typ-Hinweise:

python
def begüße(nachname: str, alter: int) -> str:
    """Begrüßt eine Person"""
    return f"Hallo {nachname}, du bist {alter} Jahre alt."
  1. Schreibe Docstrings:
python
def berechne_fläche(länge: float, breite: float) -> float:
    """
    Berechnet die Fläche eines Rechtecks.
    
    Argumente:
        länge (float): Die Länge des Rechtecks
        breite (float): Die Breite des Rechtecks
    
    Rückgabe:
        float: Die berechnete Fläche
    """
    return länge * breite

🧪 Testen

  1. Einheitentests (Unit Tests):
python
import unittest

def addiere(a: int, b: int) -> int:
    return a + b

class TestAddiere(unittest.TestCase):
    def test_addiere_positive_zahlen(self):
        self.assertEqual(addiere(1, 2), 3)
    
    def test_addiere_negative_zahlen(self):
        self.assertEqual(addiere(-1, -2), -3)

if __name__ == "__main__":
    unittest.main()
  1. Testabdeckung:
bash
pip install coverage
coverage run -m pytest
coverage report

🔄 Versionskontrolle (Git)

  1. .gitignore-Datei:
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
venv/
*.egg-info/
dist/
build/

# IDEs
.vscode/
.idea/
*.swp
*.swo
  1. Gute Commit-Nachrichten:
feat: Füge Benutzerauthentifizierung hinzu

- Implementiere Login-Funktionalität
- Füge Passwort-Hashung hinzu
- Erstelle Benutzermodell

21.4 Weiterführende Ressourcen

📚 Offizielle Dokumentation

  1. Python Offizielle Dokumentation: docs.python.org
  2. PEP 8 Style Guide: pep8.org
  3. Python Enhancement Proposals: python.org/dev/peps/

📖 Empfohlene Bücher

  1. "Python Crash Course" von Eric Matthes
  2. "Fluent Python" von Luciano Ramalho
  3. "Effective Python" von Brett Slatkin
  4. "Python Cookbook" von David Beazley und Brian K. Jones

🎓 Online-Kurse

  1. Coursera: Python for Everybody (Charles Severance)
  2. edX: MITx 6.00.1x (Introduction to Computer Science and Programming Using Python)
  3. Udemy: The Python Mega Course
  4. Real Python: realpython.com

🏆 Übungswebseiten

  1. LeetCode: leetcode.com
  2. HackerRank: hackerrank.com
  3. Codewars: codewars.com
  4. Exercism: exercism.io

📝 Zusammenfassung

In diesem Kapitel hast du gelernt:

  • ✅ Verschiedene Fortgeschrittenenbereiche in Python kennen (Datenanalyse, Backend, Crawling, Automatisierung)
  • ✅ Python-Versionsunterschiede zu verstehen
  • ✅ Unternehmensentwicklungsstandards zu befolgen
  • ✅ Weiterführende Ressourcen für dein Python-Lernen zu finden

🎯 Übung

  1. Wähle einen der fortgeschrittenen Bereiche und erstelle ein kleines Projekt
  2. Frage deinen Code mit pylint oder flake8 auf PEP-8-Standards
  3. Schreibe Einheitentests für eine deiner Funktionen
  4. Erstelle ein neues Python-Projekt und richte eine virtuelle Umgebung ein

🏁 Kursabschluss

Glückwunsch! Du hast den Python für Anfänger-Kurs abgeschlossen. Du hast:

  • ✅ Python-Grundlagen gemeistert
  • ✅ Fortgeschrittene Themen erforscht
  • ✅ Praxisprojekte abgeschlossen
  • ✅ Best Practices für die reale Welt kennengelernt

Nächste Schritte:

  • Erstelle deine eigenen Projekte
  • Betellige dich an Open-Source-Projekten
  • Vernetze dich mit der Python-Community
  • Lerne jeden Tag weiter!

Viel Erfolg auf deiner Python-Reise! 🐍

Frei für alle Anfänger