Kurs
Python lernst du am besten durch Wiederholung, Ausprobieren und Lösen konkreter Probleme. Deshalb steht das Prinzip „Learning by Doing“ im Zentrum jeder effektiven Programmierausbildung.
Code schreiben, Fehler machen und beheben – so baust du dir echte Kompetenzen auf.
In diesem Artikel arbeiten wir uns durch eine strukturierte Sammlung von Python-Übungen speziell für Einsteiger. Wir starten mit einfachen Variablen und steigern uns schrittweise zu Funktionen, Datenstrukturen und kleinen Datenprojekten.
Bevor du weiterliest, eine kleine Herausforderung: Versuche, die ersten drei Übungen direkt zu lösen – ohne vorher in die Erklärungen zu schauen. Selbst wenn du hängenbleibst: Im Ausprobieren passiert der größte Lernfortschritt.
Wenn du eine geführte Erfahrung bevorzugst, prüfen DataCamp-Kurse deine Syntax und Logik Schritt für Schritt automatisch. Das verhindert, dass kleine Fehler dich ausbremsen – besonders hilfreich am Anfang. Ein guter Startpunkt ist der Kurs Introduction to Python.
So startest du mit Python-Übungen
Bevor es losgeht, brauchst du eine einfache Umgebung, in der du Python-Code schreiben und ausführen kannst. Zum Glück ist der Einstieg heute so leicht wie nie.
Vorbereitung
Um Python lokal auszuführen, installiere einen einsteigerfreundlichen Code-Editor wie Visual Studio Code.
Ein typisches Setup sieht so aus:
-
Installiere Python von der offiziellen Website
-
Installiere Visual Studio Code
-
Füge in VS Code die Python-Erweiterung hinzu
-
Erstelle eine neue
.py-Datei und leg los

VS Code ist ein guter Einstieg, da es Open Source und kostenlos ist. Du kannst die Software auf der Download-Seite herunterladen und nach dem Download direkt installieren.
Wenn du nichts installieren willst, nutze DataLab – eine browserbasierte Umgebung, in der du Python- (und SQL-) Code sofort ausführen kannst. Ideal, um Tutorials zu begleiten, Snippets zu testen und ohne Setup-Hürden zu experimentieren.
So nutzt du diese Übungen
Damit du maximal lernst, ist jede Übung so gedacht, dass du sie zuerst selbst versuchst – bevor du Lösung oder Erklärung liest.
So holst du das meiste heraus:
- Investiere mindestens 15 Minuten in einen eigenen Lösungsversuch
- Schreibe das komplette Programm, auch wenn es sich wiederholt anfühlt
- Prüfe die Musterlösung erst, nachdem du es versucht hast
Eine vollständige Musterlösung für alle Übungen findest du in diesem verlinkten DataLab-Workbook. So kannst du deinen Ansatz mit einer funktionierenden Lösung vergleichen und alternative Wege kennenlernen.

Python-Übungen zu Variablen, Eingabe und Ausgabe
Starten wir mit grundlegenden Bausteinen: Werte speichern, Nutzereingaben lesen und Ausgaben mit print auf dem Bildschirm ausgeben.
Die personalisierte Begrüßung
Zum Auftakt eine simple Python-Übung, die eine persönliche Nachricht ausgibt.
Übung
Schreibe ein Programm, das:
-
Die Nutzerin oder den Nutzer mit
input()nach dem Namen fragt -
Mit
input()nach dem Alter fragt -
Eine Begrüßung mit formatierten Strings ausgibt
-
Das Jahr berechnet, in dem die Person 100 wird
Bevor du Code schreibst, hilft es, den Informationsfluss zu verstehen: Die Nutzerin/der Nutzer liefert Rohtext, Python speichert ihn in Variablen und du verwandelst diese Werte in etwas Sinnvolles.
Diese Übung spiegelt viele echte Programme wider: Eingaben sind selten direkt nutzbar und müssen zuerst validiert oder konvertiert werden.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
# Task: Ask for the user's name
name = input("Enter your name: ")
# Task: Ask for the user's age (note: input() returns a string)
age_str = input("Enter your age: ")
# Task: Convert age_str to an int
# age = ...
# Task: Calculate the year the user turns 100
# Tip: you'll need the current year
# current_year = ...
# year_turn_100 = ...
# Task: Print a personalized message using an f-string
# print(...)
Geübte Konzepte
-
input()liefert immer einen String -
Strings mit
int()in Integer umwandeln -
Einfache Arithmetik mit Zahlen
-
Stringformatierung mit f-Strings
Du lernst hier, dass Eingaben oft transformiert werden müssen, bevor du mit ihnen rechnen kannst.
Der Temperatur-Umrechner
Setzen wir deine Python-Skills für einfache Einheitenumrechnungen ein.
Übung
Schreibe ein Programm, das:
-
Nach einer Temperatur in Celsius fragt
-
Sie mit der Formel
F = (C × 9/5) + 32in Fahrenheit umrechnet -
Die umgerechnete Temperatur ausgibt
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
# Task: Ask the user for a Celsius temperature
celsius_str = input("Temperature in Celsius: ")
# Task: Convert the input to a float
# celsius = ...
# Task: Apply the conversion formula
# fahrenheit = ...
# Task: Print the result (consider formatting to 1–2 decimal places)
# print(...)
Geübte Konzepte
-
Gleitkommazahlen
-
Arithmetische Ausdrücke
-
Type Casting mit
float()
Diese Übung zeigt: Nicht jede Zahl ist ganzzahlig – Python kann Dezimalzahlen selbstverständlich verarbeiten.
Das Tausch-Rätsel
Diese Aufgabe wirkt trivial, doch viele Einsteiger denken bei Variablen an Boxen, die man Schritt für Schritt leert und füllt. Schauen wir uns an, wie man in Python Werte tauscht.
Übung
Gegeben sind a = 5 und b = 10. Tausche die Werte, ohne sie manuell einzeln neu zuzuweisen.
Python erlaubt eine ausdrucksstarke Sicht auf Zuweisungen: Werte können in einem Schritt entpackt und neu zugewiesen werden.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
a = 5
b = 10
# Task: Swap a and b
# Hint: Try a temporary variable first.
# Then try the Pythonic approach (tuple unpacking).
# Task: Print the swapped values to verify
# print("a:", a)
# print("b:", b)
Geübte Konzepte
- Variablenzuweisung
- Temporäre Variable vs. Tuple-Unpacking
So lernst du Tuple-Unpacking kennen – ein Feature, das Python prägnant und ausdrucksstark macht.
Mehr Grundlagen findest du im Python Cheat Sheet.
Python-Übungen zu Kontrollfluss und Logik
Kontrollfluss ermöglicht es deinen Programmen, Entscheidungen zu treffen und Aktionen abhängig von Bedingungen zu wiederholen.
Gerade-oder-ungerade-Prüfer
Ein häufiger Einsatz des Modulo-Operators ist die Gerade/Ungerade-Prüfung. Probieren wir das aus.
Übung
Schreibe ein Programm, das:
-
Die Nutzerin/den Nutzer nach einer Zahl fragt
-
Den Modulo-Operator
%verwendet -
Ausgibt, ob die Zahl gerade oder ungerade ist
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
# Task: Ask the user for a number
num_str = input("Enter a whole number: ")
# Task: Convert to int
# num = ...
# Task: Use modulo (%) to decide even vs odd
# if ...:
# print("Even")
# else:
# print("Odd")
Geübte Konzepte
-
Modulo-Operator
-
Boolesche Logik
Hier siehst du oft zum ersten Mal, wie Bedingungen das Programmverhalten steuern.
Die klassische FizzBuzz-Challenge
Eine der bekanntesten Programmierübungen ist FizzBuzz. Schauen wir uns an, worum es geht.
Übung
Gib die Zahlen von 1 bis 100 nach folgenden Regeln aus:
-
Vielfache von 3: Ausgabe
Fizz -
Vielfache von 5: Ausgabe
Buzz -
Vielfache von 3 und 5: Ausgabe
FizzBuzz
Diese Übung schärft dein Denken in Entscheidungsbäumen und Edge Cases – eine zentrale Fähigkeit für reale Programme.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
# Task: Loop from 1 to 100
for n in range(1, 101):
# Task: Check multiples of 3 AND 5 first
# if ...:
# print("FizzBuzz")
# Task: Then multiples of 3
# elif ...:
# print("Fizz")
# Task: Then multiples of 5
# elif ...:
# print("Buzz")
# Task: Otherwise, print the number
# else:
# print(n)
pass
Geübte Konzepte
-
for-Schleifen -
Reihenfolge von Bedingungen
-
Logische Operatoren
FizzBuzz gilt als kleine Bewährungsprobe und schult strukturiertes Denken im Kontrollfluss. Mehr zu Schleifen findest du im Python-Loop-Tutorial.
Das Zahlenratespiel
Diese Übung führt interaktive Programme ein, die dynamisch auf Eingaben reagieren.
Übung
Schreibe ein Programm, das:
-
Eine Zufallszahl erzeugt (Modul
randomimportieren) -
Mit einer
while-Schleife wiederholt nach Tipps fragt -
Nach jedem Tipp „Too high“ oder „Too low“ ausgibt
-
Stoppt, wenn die richtige Zahl erraten wurde
Das ist oft das erste Programm, das sich wirklich interaktiv anfühlt. Anders als frühere Skripte, die linear von oben nach unten laufen, bleibt dieses aktiv, bis eine Bedingung erfüllt ist.
Der entscheidende Sprung ist hier das Verständnis von Abbruchbedingungen in Schleifen.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
import random
# Task: Pick a random number in a reasonable range
# target = random.randint(1, 100)
# Task: Use a while loop to keep asking until correct
# while ...:
# guess_str = input("Your guess (1–100): ")
# # guess = ...
# # if guess > target:
# # print("Too high")
# # elif guess < target:
# # print("Too low")
# # else:
# # print("Correct!")
# # break
Geübte Konzepte
-
Module importieren (
random) -
while-Schleifen -
Abbruchbedingungen für Schleifen
Python-Übungen zu Listen, Schleifen und Iteration
Listen ermöglichen es dir, mit Wertsammlungen zu arbeiten, und Schleifen verarbeiten sie effizient.
Die Listensumme
Dieses Muster begegnet dir häufig in Datenverarbeitung und Analytics-Workflows.
Übung
Schreibe ein Programm, das alle Zahlen in einer Liste summiert – ohne die eingebaute Funktion sum() zu verwenden. Die Summenlogik soll explizit in einer Schleife erfolgen, nicht über andere Aggregationshelfer.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
numbers = [3, 7, 2, 9, 4]
# Task: Create an accumulator variable
# total = ...
# Task: Loop through numbers and add each value to total
# for ...:
# ...
# Task: Print the final total
# print(total)
Geübte Konzepte
-
Initialisieren einer Akkumulator-Variablen
-
Iterieren mit
for-Schleifen -
Werte schrittweise aktualisieren
Weitere Beispiele zu Listen findest du in unserem Guide zu den häufigsten Python-Listenfragen.
Die größte Zahl finden
Diese Übung ähnelt der vorherigen, funktioniert in der Schleife aber anders. Sie stärkt dein algorithmisches Denken und zeigt, wie eingebaute Funktionen intern arbeiten könnten.
Übung
Fordere die Nutzerin/den Nutzer heraus, die größte Zahl in einer Liste zu finden – ohne max().
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
numbers = [12, 5, 27, 3, 19]
# Task: Initialize current_max using the first element
# current_max = numbers[0]
# Task: Loop through the remaining elements and update current_max
# for ...:
# if ...:
# current_max = ...
# Task: Print the largest number
# print(current_max)
Geübte Konzepte
- Vergleichslogik
- Zustand während der Iteration verfolgen
Duplikate entfernen
Realdaten sind oft unordentlich – dazu zählen doppelte Einträge. Diese Übung bereitet dich auf Datenbereinigung vor.
Übung
Wandle eine Liste mit Duplikaten in eine neue Liste mit nur eindeutigen Elementen um.
Auf den ersten Blick wirkt das simpel, doch du lernst dabei, bereits Gesehenes zu verfolgen. Das ist grundlegend in der Datenverarbeitung, wo doppelte Datensätze regelmäßig identifiziert und entfernt werden.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
data = ["apple", "banana", "apple", "orange", "banana", "kiwi"]
# Task: Create a new list for unique items
# unique = []
# Task: Loop through data and append items you haven't seen yet
# for item in data:
# if ...:
# ...
# Task: Print or return the unique list
# print(unique)
Geübte Konzepte
-
Mitgliedschaftsprüfung mit
in -
Neue Listen aufbauen
-
Daten-Eindeutigkeit verstehen
Python-Übungen zu Dictionaries und String-Manipulation
Dictionaries und Strings sind essenziell, um Textdaten zu organisieren und zu transformieren. Schauen wir uns an, wie man damit arbeitet.
Der Zeichenhäufigkeitszähler
Diese Übung zeigt dir, wie man Häufigkeitstabellen aufbaut – eine gängige Aufgabe in der Datenanalyse.
Übung
Nimm einen Texteingang und gib ein Dictionary zurück, das zählt, wie oft jedes Zeichen vorkommt.
Das ist ein großer konzeptioneller Schritt: Du baust eine Datenstruktur dynamisch zur Laufzeit auf. Statt mit vorgegebenen Listen oder Dictionaries zu arbeiten, erstellst und aktualisierst du Einträge basierend auf den eingehenden Daten.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
text = input("Enter some text: ")
# Task: Create an empty dictionary
# counts = {}
# Task: Loop over each character and update counts
# for ch in text:
# # Option A: counts[ch] = counts.get(ch, 0) + 1
# # Option B: if ch in counts: ... else: ...
# pass
# Task: Print the frequency table
# print(counts)
Geübte Konzepte
-
Dictionaries
-
.get()-Methode -
Bedingte Initialisierung
Das einfache Telefonbuch
Diese Übung berührt Dictionary-Logik – ein Fundament, um später tabellarische Datenstrukturen zu verstehen.
Übung
Erstelle ein Programm, das Namen und Nummern in einem Dictionary speichert und die Suche nach Namen erlaubt.
Hier nutzt du ein Programm als nachschlagbares Werkzeug statt nur für eine einmalige Rechnung. Du modellierst eine vereinfachte Version davon, wie viele Anwendungen Informationen speichern und abrufen.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
phonebook = {
# "Alice": "9123 4567",
# "Ben": "9876 5432",
}
# Task: (Optional) add entries via input()
# name = input("Name to add: ")
# number = input("Number to add: ")
# phonebook[name] = number
# Task: Search loop (one lookup is fine for a start)
query = input("Search name: ")
# Task: Print the number if found, otherwise print a friendly message
# if ...:
# print(...)
# else:
# print("Not found")
Geübte Konzepte
- Dictionary-Lookups
- Schlüssel-Wert-Beziehungen
Wenn du tiefer in Dictionaries einsteigen willst, lies unseren umfassenden Guide zu den Python Dictionary Methods.
Palindrome-Checker
Diese Übung kombiniert Textverarbeitung mit logischem Vergleich am Beispiel von Palindromen.
Übung
Ein Palindrom ist ein Wort, eine Phrase, Zahl oder Zeichenfolge, die vorwärts wie rückwärts gleich ist. Schreibe ein Skript, das prüft, ob ein String – unabhängig von Groß-/Kleinschreibung und Leerzeichen – ein Palindrom ist.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
text = input("Enter a word or phrase: ")
# Task: Normalize (lowercase + remove spaces)
# normalized = ...
# Task: Reverse using slicing
# reversed_text = ...
# Task: Compare and print a result message
# if ...:
# print("Palindrome")
# else:
# print("Not a palindrome")
Geübte Konzepte
-
String-Methoden (
lower(),replace()) -
String-Slicing (
[::-1])
Python-Übungen zu Funktionen und Modularität
Funktionen helfen dir, wiederverwendbaren, strukturierten Code zu schreiben – statt Logik zu duplizieren.
Der Fakultätsrechner
Der Fakultätsrechner hilft dir, Rückgabewerte zu verstehen – essenziell für größere Programme.
Übung
Definiere eine Funktion, die eine ganze Zahl nimmt und ihre Fakultät mit einer Schleife zurückgibt.
Der Unterschied zwischen Ausgeben und Zurückgeben ist wichtig: Rückgabewerte erlauben Komposition mit anderem Code – unerlässlich, wenn Programme anwachsen.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
def factorial(n: int) -> int:
"""Return n! (factorial of n) using a loop."""
# Task: Decide how to handle n < 0
# Task: Initialize result
# result = ...
# Task: Multiply result by each integer from 1 to n
# for ...:
# ...
# Task: Return the computed factorial
# return result
pass
# Optional quick test
# print(factorial(5)) # expected: 120
Geübte Konzepte
- Funktionsdefinitionen
- Schleifenbasierte Berechnungen
- Werte zurückgeben vs. ausgeben
Mehr zu Funktionen findest du im Python-Functions-Tutorial.
Primzahl-Validator
Als Nächstes bauen wir eine Funktion, die prüft, ob eine Zahl eine Primzahl ist – ideal, um wiederverwendbare Logik zu kapseln.
Übung
Schreibe eine Funktion, die True zurückgibt, wenn eine Zahl prim ist, sonst False.
Primzahlprüfungen zeigen, wie Funktionen Logik sauber kapseln. Einmal geschrieben, kannst du sie überall verwenden, ohne die Details erneut zu verstehen.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
def is_prime(n: int) -> bool:
"""Return True if n is prime, otherwise False."""
# Task: Handle small cases (n <= 1)
# Task: Check divisibility from 2 up to an appropriate limit
# for ...:
# if ...:
# return False
# Task: If no divisors found, return True
# return True
pass
# Optional quick tests
# print(is_prime(2)) # expected: True
# print(is_prime(15)) # expected: False
Geübte Konzepte
- Schleifen
- Frühe Rückgaben
- Logische Effizienz
Flexibler Argument-Printer
Hier lernst du fortgeschrittene Funktionssignaturen kennen, wie sie viele Python-Bibliotheken nutzen.
Übung
Erstelle eine Funktion, die beliebig viele Argumente über *args akzeptiert und sie einzeln ausgibt.
So lernst du eine der flexibleren Python-Funktionen kennen: variadische Argumente. Das rückt den Fokus weg von fixen Eingaben hin zu Funktionen, die sich verschiedenen Nutzungsmustern anpassen.
Wenn du *args verstehst, fällt es dir leichter, reale Bibliotheken zu lesen und zu nutzen, in denen Funktionen oft eine flexible Zahl an Parametern akzeptieren.
Starter-Code
Hier ist etwas Starter-Code als Leitplanke:
def print_args(*args) -> None:
"""Print each positional argument on its own line."""
# Task: Loop over args and print each one
# for ...:
# print(...)
pass
# Optional quick test
# print_args("hello", 42, True)
Geübte Konzepte
- Variadische Argumente
- Funktionale Flexibilität
Python-Skills in geführten Projekten anwenden
Übungen bauen Kompetenzen auf, aber Projekte verwandeln sie in Selbstvertrauen.
Netflix-Filme untersuchen

Im geführten Projekt Investigating Netflix Movies gehst du einer scheinbar einfachen Frage nach: Werden Filme im Laufe der Zeit kürzer? Dafür arbeitest du mit einem realen Datensatz von Netflix-Titeln und verwandelst rohe Datenzeilen Schritt für Schritt in eine klare visuelle Erkenntnis.
Die Stärke dieses Projekts: Es schlägt die Brücke zwischen Python-Grundlagen und angewandter Datenanalyse. Du siehst, wie einfache Logik im Zusammenspiel mit den richtigen Tools skaliert – ganz ohne lokale Installation.
Dr. Semmelweis und die Entdeckung der Handhygiene

Das Projekt Dr. Semmelweis and the Importance of Handwashing versetzt dich in die Rolle einer Datenanalystin/eines Datenanalysten, die/der ein historisches Problem untersucht. Mitte des 19. Jahrhunderts beobachtete Dr. Ignaz Semmelweis ungewöhnlich hohe Sterblichkeitsraten in einer Krankenhausstation im Vergleich zu einer anderen – es fehlten jedoch die rechnerischen Werkzeuge, um die Ursache zu belegen.
Anhand historischer Aufzeichnungen analysierst du Mortalitätsdaten vor und nach der Einführung der Händehygiene. Das Projekt konzentriert sich auf die Arbeit mit tabellarischen Daten in pandas, das Berechnen von Raten und den Vergleich von Durchschnitten über Zeiträume.
Den NYC-Airbnb-Markt erkunden

Im Projekt Exploring Airbnb Market Trends arbeitest du in einem Szenario, das realer Analytics-Arbeit stark ähnelt: unaufgeräumte, inkonsistente Daten, die umfangreiche Bereinigung erfordern, bevor sinnvolle Analysen möglich sind.
Der Datensatz enthält Mietangebote mit Preisen als Strings, fehlenden Bewertungs-Scores und uneinheitlicher Formatierung.
Deine Hauptaufgabe ist, die Daten zu bereinigen und zu standardisieren. Das Projekt macht klar: Datenaufbereitung ist keine lästige Vorstufe, sondern eine Kernkompetenz der Analyse. Oft verbringen Datenprofis den Großteil ihrer Zeit mit Bereinigung – hier bekommst du dafür einen praxisnahen Checkpoint.
Fazit
Du hast mit einfachen Variablen und Eingaben begonnen, bist durch Kontrollfluss, Datenstrukturen und Funktionen gegangen und hast alles in geführten Projekten angewendet. Diese Übungen geben dir einen guten Einblick, wie Python in der Praxis genutzt wird.
Dein nächster Schritt ist ein strukturiertes Lernprogramm. Regelmäßiges Üben kombiniert mit geführter Anleitung bringt dich am schnellsten vom Üben zur Expertise. Ich empfehle dir unseren Lernpfad Python Programming oder den Data Scientist Track, um loszulegen.
Python-Übungen: FAQs
Was ist die beste Plattform für Python-Coding-Challenges?
Die stärksten Plattformen verbinden praktisches Coden mit strukturiertem Feedback. DataCamp ist ideal für geführtes Üben: In‑Browser‑Coding (kein Setup), sofortiges Feedback zu Übungen, strukturierte Skill- und Karriere-Lernpfade sowie geführte Projekte mit echten Datensätzen.
Wie kann ich Spaced Repetition effektiv nutzen, um Python zu lernen?
Am besten funktioniert Spaced Repetition auf Konzeptebene, nicht nur auf Syntax. Lies nicht einfach wiederholt deine Notizen, sondern kehre über die Zeit zu denselben Ideen zurück – mit zunehmend schwierigeren Übungen.
Welche fortgeschrittenen Python‑Projekte eignen sich für Einsteiger?
Gute Beispiele für fortgeschrittene Einsteigerprojekte sind: eine Kommandozeilen‑To‑Do‑App mit Dateispeicherung, die Analyse eines CSV‑Datensatzes mit pandas und einfachen Visualisierungen oder ein kleiner API‑Client, der Daten von einem öffentlichen Endpoint abruft und verarbeitet.
Ich bin Austin, ein Blogger und Tech-Autor mit jahrelanger Erfahrung als Datenwissenschaftler und Datenanalyst im Gesundheitswesen. Ich habe meine Reise in die Welt der Technik mit einem Hintergrund in Biologie begonnen und helfe jetzt anderen mit meinem Technik-Blog, den gleichen Weg einzuschlagen. Meine Leidenschaft für Technologie hat dazu geführt, dass ich für Dutzende von SaaS-Unternehmen schreibe, um andere zu inspirieren und meine Erfahrungen zu teilen.
