Appearance
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:
- Verkaufsdatenanalyse: Analysiere Verkaufsdaten, um Trends zu finden
- Aktienmarktanalyse: Verwende Pandas, um Aktienkurse zu analysieren
- 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:
- Aufgabenverwaltungssystem: Erstelle eine Web-Anwendung zur Verwaltung von Aufgaben
- Blog-System: Entwickle ein einfaches Blog-System mit Benutzerauthentifizierung
- 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:
- Nachrichtenaggregator: Crawle Nachrichten-Websites und fasse Schlagzeilen zusammen
- Preisüberwachung: Überwache Produktpreise auf E-Commerce-Websites
- 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:
- Automatisierte Datensicherung: Erstelle ein Skript zur automatischen Datensicherung
- E-Mail-Automatisierung: Sende automatische E-Mail-Benachrichtigungen
- Berichterstattungsautomatisierung: Erstelle automatisch Berichte aus Daten
21.2 Python-Versionsunterschiede
🔢 Python 2 vs. Python 3 (Historisch)
Wichtig zu wissen (obwohl Python 2 veraltet ist):
| Aspekt | Python 2 | Python 3 |
|---|---|---|
print | print "Hallo" | print("Hallo") |
| Division | 3 / 2 = 1 (Ganzzahl) | 3 / 2 = 1.5 (Fließkomma) |
| Unicode | ASCII (Standard) | Unicode (Standard) |
xrange() | Vorhanden | Nicht vorhanden (verwende range()) |
raw_input() | Vorhanden | Nicht 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
Befolge PEP 8:
- 4 Leerzeichen für Einrückung
- Maximal 79 Zeichen pro Zeile
- Klassennamen:
MeineKlasse - Funktions-/Variablennamen:
meine_funktion
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."- 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
- 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()- Testabdeckung:
bash
pip install coverage
coverage run -m pytest
coverage report🔄 Versionskontrolle (Git)
.gitignore-Datei:
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
venv/
*.egg-info/
dist/
build/
# IDEs
.vscode/
.idea/
*.swp
*.swo- Gute Commit-Nachrichten:
feat: Füge Benutzerauthentifizierung hinzu
- Implementiere Login-Funktionalität
- Füge Passwort-Hashung hinzu
- Erstelle Benutzermodell21.4 Weiterführende Ressourcen
📚 Offizielle Dokumentation
- Python Offizielle Dokumentation: docs.python.org
- PEP 8 Style Guide: pep8.org
- Python Enhancement Proposals: python.org/dev/peps/
📖 Empfohlene Bücher
- "Python Crash Course" von Eric Matthes
- "Fluent Python" von Luciano Ramalho
- "Effective Python" von Brett Slatkin
- "Python Cookbook" von David Beazley und Brian K. Jones
🎓 Online-Kurse
- Coursera: Python for Everybody (Charles Severance)
- edX: MITx 6.00.1x (Introduction to Computer Science and Programming Using Python)
- Udemy: The Python Mega Course
- Real Python: realpython.com
🏆 Übungswebseiten
- LeetCode: leetcode.com
- HackerRank: hackerrank.com
- Codewars: codewars.com
- 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
- Wähle einen der fortgeschrittenen Bereiche und erstelle ein kleines Projekt
- Frage deinen Code mit
pylintoderflake8auf PEP-8-Standards - Schreibe Einheitentests für eine deiner Funktionen
- 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! 🐍
