Knowledge Hub

Learning Journey

Python-Themen-Aufgaben

Aufgaben nach Themen — keine Lösungen. Empfohlen: Programme → Funktionen/Klassen → … → FastAPI; Debugging parallel.

Gesamtfortschritt

0%

Nächster Schritt: Kleine Python-Programme

  1. 01

    Kleine Python-Programme

    Eingabe, Taschenrechner, Primzahl und Zahlen-raten — Einstieg ohne Lösungen.

    Offen · 2 Themen
  2. 02

    APIs

    requests, JSONPlaceholder, Open-Meteo, Witze-API und lokale JSON-Speicherung.

    Offen · 2 Themen
  3. 03

    Daten verarbeiten

    Statistik ohne Built-ins, Wörter analysieren, Produkte filtern, CSV-Umsatz.

    Offen · 2 Themen
  4. 04

    Dateien lesen/schreiben

    Schreiben, lesen, anhängen (Tagebuch) und JSON dump/load.

    Offen · 1 Themen
  5. 05

    Fehlerbehandlung

    try/except, sichere Division, Dateifehler und eigene Exception-Klasse.

    Offen · 1 Themen
  6. 06

    Funktionen und Klassen

    Palindrom, Auto.alter(), Warenkorb und Manager-Vererbung.

    Offen · 2 Themen
  7. 07

    Listen/Dictionaries

    Duplikate, umdrehen, zip zu Dict, Wörter nach Länge gruppieren.

    Offen · 1 Themen
  8. 08

    Einfache Algorithmen

    Bubble Sort, binäre Suche, Fibonacci, Anagramme, rekursive Fakultät.

    Offen · 1 Themen
  9. 09

    Datenbanken

    SQLite: Tabelle personen, CRUD und JOIN mit bestellungen.

    Offen · 2 Themen
  10. 10

    Kleine Webanwendungen (FastAPI)

    Hallo-Endpoint, Todo-API, SQLite-Anbindung, PATCH und HTML-Frontend.

    Offen · 2 Themen
  11. 11

    Debugging

    Fehlermeldungen lesen, Print-Debugging, breakpoint() und Code-Review.

    Offen · 1 Themen

Vollständige Anleitung

Python Lernaufgaben – Nach Themen

Alle Abschnitte und Code-Beispiele aus der Quelle — auch als Lektion oder PDF.

Python Lernaufgaben – Nach Themen

Keine Lösungen enthalten. Erst selbst probieren – bei Bedarf gehen wir eine Aufgabe gemeinsam Schritt für Schritt durch.


1. Kleine Python-Programme

  1. Schreibe ein Programm, das den Nutzer nach seinem Namen fragt und ihn begrüßt.
  2. Schreibe einen einfachen Taschenrechner: Nutzer gibt zwei Zahlen und eine Rechenart (+,-,*,/) ein, das Ergebnis wird ausgegeben.
  3. Schreibe ein Programm, das prüft, ob eine eingegebene Zahl eine Primzahl ist.
  4. Schreibe ein "Zahlen erraten"-Spiel: Das Programm denkt sich eine Zahl zwischen 1-100 aus, der Nutzer rät, das Programm sagt "höher" oder "niedriger".

2. APIs

  1. Nutze requests, um Daten von https://jsonplaceholder.typicode.com/users zu holen und die Namen aller Nutzer auszugeben.
  2. Hole dir Wetterdaten von einer kostenlosen API (z.B. Open-Meteo, kein API-Key nötig) und gib Temperatur + Ort aus.
  3. Baue eine Funktion hole_zufallswitz(), die von https://official-joke-api.appspot.com/random_joke einen zufälligen Witz abruft und formatiert ausgibt.
  4. Erweitere Aufgabe 1: Speichere die abgerufenen Nutzerdaten zusätzlich in einer lokalen JSON-Datei.

Setup: pip install requests


3. Daten verarbeiten

  1. Gegeben eine Liste von Zahlen: berechne Summe, Durchschnitt, Minimum und Maximum – ohne die eingebauten Funktionen sum(), min(), max().
  2. Gegeben eine Liste von Wörtern: finde das längste Wort und zähle, wie oft jeder Anfangsbuchstabe vorkommt.
  3. Gegeben eine Liste von Dictionaries (z.B. Produkte mit name und preis): filtere alle Produkte über 50€ und sortiere sie nach Preis.
  4. Lies eine CSV-Datei mit Verkaufsdaten ein (Spalten: Datum, Produkt, Menge, Preis) und berechne den Gesamtumsatz pro Produkt.

Tipp für CSV: Modul csv oder pandas.


4. Dateien lesen/schreiben

  1. Schreibe eine Funktion, die einen Text in eine Datei notizen.txt schreibt.
  2. Schreibe eine Funktion, die den Inhalt von notizen.txt liest und zeilenweise ausgibt.
  3. Baue ein kleines "Tagebuch"-Programm: Jeder neue Eintrag wird mit Datum an eine Datei angehängt (nicht überschrieben).
  4. Schreibe eine Liste von Dictionaries als JSON-Datei (json.dump) und lies sie anschließend wieder ein (json.load).

5. Fehlerbehandlung

  1. Schreibe ein Programm, das den Nutzer eine Zahl eingeben lässt. Fängt den Fehler ab, falls keine gültige Zahl eingegeben wird, und fragt erneut.
  2. Baue eine Funktion sichere_division(a, b), die eine Division durchführt und bei Division durch 0 eine sinnvolle Fehlermeldung statt eines Absturzes zurückgibt.
  3. Schreibe ein Programm, das eine Datei öffnet – fange den Fehler ab, falls die Datei nicht existiert, und gib eine verständliche Meldung aus.
  4. Baue eine eigene Exception-Klasse UngueltigesAlterError und wirf sie, wenn ein eingegebenes Alter negativ ist.

6. Funktionen und Klassen

  1. Schreibe eine Funktion ist_palindrom(text), die prüft, ob ein Wort rückwärts gelesen gleich ist (z.B. "anna").
  2. Erstelle eine Klasse Auto mit marke, baujahr und einer Methode alter(), die berechnet, wie alt das Auto ist (aktuelles Jahr - Baujahr).
  3. Erstelle eine Klasse Warenkorb, die Produkte (Name + Preis) hinzufügen, entfernen und den Gesamtpreis berechnen kann.
  4. Erstelle eine Klasse Mitarbeiter und eine abgeleitete Klasse Manager, die zusätzlich eine Liste von Teammitgliedern verwaltet.

7. Listen/Dictionaries

  1. Entferne alle doppelten Werte aus einer Liste (ohne set() zu benutzen).
  2. Drehe eine Liste um, ohne .reverse() oder [::-1] zu benutzen.
  3. Gegeben zwei Listen (Namen, Alter): baue daraus ein Dictionary {name: alter} (Tipp: zip()).
  4. Gruppiere eine Liste von Wörtern nach ihrer Länge in einem Dictionary, z.B. {3: ["Hut", "Bus"], 5: ["Apfel"]}.

8. Einfache Algorithmen

  1. Implementiere Bubble Sort, um eine Liste von Zahlen zu sortieren.
  2. Implementiere eine binäre Suche in einer sortierten Liste.
  3. Schreibe eine Funktion, die die Fibonacci-Folge bis zur n-ten Zahl berechnet.
  4. Schreibe eine Funktion, die prüft, ob zwei Wörter Anagramme sind (gleiche Buchstaben, andere Reihenfolge).
  5. Schreibe eine rekursive Funktion, die die Fakultät einer Zahl berechnet (5! = 5*4*3*2*1).

9. Datenbanken

Setup: SQLite ist in Python bereits eingebaut (import sqlite3), kein separater Server nötig.

  1. Erstelle eine SQLite-Datenbank mit einer Tabelle personen (id, name, alter).
  2. Schreibe eine Funktion person_hinzufuegen(name, alter), die einen neuen Eintrag speichert.
  3. Schreibe eine Funktion alle_personen_anzeigen(), die alle Einträge aus der Tabelle ausliest und ausgibt.
  4. Erweitere um person_loeschen(id) und person_aktualisieren(id, neuer_name).
  5. Schwerer: Baue eine zweite Tabelle bestellungen, die über eine person_id mit personen verknüpft ist (Fremdschlüssel), und schreibe eine Abfrage, die alle Bestellungen einer bestimmten Person zeigt (JOIN).

10. Kleine Webanwendungen (FastAPI)

Setup: pip install fastapi uvicorn

  1. Baue eine API mit einem Endpunkt /hallo/{name}, der {"message": "Hallo, name!"} zurückgibt.
  2. Baue eine kleine "Todo-API": GET /todos (alle anzeigen), POST /todos (neue Aufgabe hinzufügen) – Daten erstmal nur in einer Python-Liste im Speicher.
  3. Verbinde die Todo-API mit der SQLite-Datenbank aus Aufgabe 9, statt die Daten nur im Speicher zu halten.
  4. Baue einen Endpunkt /todos/{id}, um eine einzelne Aufgabe als "erledigt" zu markieren (PATCH oder PUT).
  5. Schwerer: Baue ein einfaches HTML-Frontend (fetch() im Browser), das die Todo-API anspricht und die Aufgaben anzeigt.

11. Debugging

  1. Nimm eines deiner obigen Programme und baue absichtlich einen Fehler ein (z.B. falscher Variablenname) – finde ihn anhand der Fehlermeldung im Terminal.
  2. Nutze print()-Statements gezielt, um herauszufinden, welchen Wert eine Variable an einer bestimmten Stelle im Code hat ("Print-Debugging").
  3. Lerne den Python-Debugger kennen: Füge breakpoint() an einer Stelle im Code ein und probiere die Befehle n (next), c (continue), p variable (Wert anzeigen).
  4. Nimm eine Funktion, die ein falsches Ergebnis liefert (z.B. deine Bubble-Sort-Implementierung mit einem absichtlichen Fehler) und finde den Fehler nur durch Lesen des Codes, ohne ihn auszuführen.

Vorschlag für eine Lernreihenfolge

1. Kleine Python-Programme
2. Funktionen und Klassen
3. Listen/Dictionaries
4. Fehlerbehandlung
5. Dateien lesen/schreiben
6. Einfache Algorithmen
7. Daten verarbeiten
8. Debugging (immer parallel mitlernen!)
9. APIs
10. Datenbanken
11. Kleine Webanwendungen (verbindet alles: API + Datenbank + Fehlerbehandlung)

Hinweis

Bei "kleine Webanwendungen" (Punkt 10) fließt eigentlich alles zusammen, was du vorher geübt hast: Funktionen, Klassen, Fehlerbehandlung, Datenbanken. Das ist ein guter Prüfstein, um zu sehen, was schon sitzt.

Sag mir, mit welchem Thema/welcher Aufgabe du starten willst – dann gehen wir sie zusammen Schritt für Schritt durch.