Übungsaufgaben vom Anfänger bis zum Experten




Deine Reise beginnt hier


Egal, ob du gerade erst anfängst oder bereits Erfahrung in der Python-Programmierung hast, bei uns findest du Aufgaben, die deinem Niveau entsprechen. Von den Grundlagen bis zu fortgeschrittenen Themen - unsere Aufgaben decken die facettenreiche Welt von Python ab.


Merke dir, dass es nicht nur eine richtige Lösung gibt. Die Welt des Programmierens ist ein kreativer Spielplatz, auf dem es viele Wege gibt, ein Problem zu lösen. Wenn deine Lösung anders ist als unsere, ist das keineswegs falsch. Im Gegenteil, du entwickelst deine eigenen Fähigkeiten und wächst mit jeder Herausforderung.


Übung macht den Meister


Wie heißt es so schön: "Übung macht den Meister." Wenn du auf eine Aufgabe triffst, die dich vor eine Herausforderung stellt, verzweifle nicht. Genau hier liegt der Reiz des Programmierens. Bleib dran, probiere verschiedene Ansätze aus und lerne aus deinen Fehlern. Du wirst erstaunt sein, wie viel du im Laufe der Zeit lernst.

Wenn du auf eine besonders knifflige Aufgabe triffst, denke daran, dass selbst die besten Programmierer einmal über ihren eigenen Code gestolpert sind. Lass uns gemeinsam über die Herausforderungen lachen und daraus lernen.


Lasst uns gemeinsam coden und wachsen!




Sehr leicht



Aufgabe 1: Die Begrüßung


Schreibe ein Python-Programm, das den Benutzer nach seinem Namen fragt und ihn dann herzlich begrüßt. Das Programm sollte den Benutzernamen in einer freundlichen Nachricht verwenden, z. B. "Hallo, Sascha! Herzlich willkommen auf PythonWorld.online."




Aufgabe 2: Zahlensumme


Schreibe ein Python-Programm, das die Summe von zwei Zahlen berechnet und das Ergebnis ausgibt. Der Benutzer sollte zuerst nach der ersten Zahl und dann nach der zweiten Zahl gefragt werden.




Aufgabe 3: Quadratzahlen


Schreibe ein Python-Programm, das die Quadrate der Zahlen von 1 bis 10 berechnet und ausgibt. Verwende eine Schleife, um die Berechnung durchzuführen.




Aufgabe 4: Wochentage zählen


Schreibe ein Python-Programm, das die Anzahl der Buchstaben "e" in den Wochentagen zählt. Die Wochentage sind: Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag und Sonntag. Das Programm sollte die Anzahl der "e"-Buchstaben in jedem Wochentag ausgeben.




Aufgabe 5: Gerade oder Ungerade


Schreibe ein Python-Programm, das den Benutzer nach einer ganzen Zahl fragt und dann überprüft, ob diese Zahl gerade oder ungerade ist. Gib das Ergebnis aus.




Aufgabe 6: Addition von Zahlen


Schreibe ein Python-Programm, das den Benutzer nach zwei Zahlen fragt und dann deren Summe berechnet und ausgibt.




Aufgabe 7: Größere Zahl finden


Schreibe ein Python-Programm, das den Benutzer nach drei Zahlen fragt und dann die größte dieser Zahlen ausgibt.




Aufgabe 8: Zahlen umkehren


Schreibe ein Python-Programm, das den Benutzer nach einer ganzen Zahl fragt und dann die umgekehrte Reihenfolge dieser Zahlen ausgibt. Zum Beispiel, wenn die Benutzereingabe 12345 ist, sollte das Programm 54321 ausgeben.




Aufgabe 9: Wochentag ermitteln


Schreibe ein Python-Programm, das den Benutzer nach einer Zahl von 1 bis 7 fragt, die einen Wochentag repräsentieren soll. Das Programm soll dann den entsprechenden Wochentag ausgeben, wobei 1 für Montag, 2 für Dienstag usw. steht.




Aufgabe 10: Einfacher Taschenrechner


Schreibe ein Python-Programm, das den Benutzer nach zwei Zahlen und einer mathematischen Operation (+, -, *, /) fragt und dann das Ergebnis dieser Operation ausgibt.




Leicht



Aufgabe 11: Das Alter berechnen


Schreibe ein Python-Programm, das den Benutzer nach seinem Geburtsjahr fragt und dann sein aktuelles Alter berechnet und ausgibt.




Aufgabe 12: Umrechnung von Kilometer in Meilen


Schreibe ein Python-Programm, das den Benutzer nach einer Entfernung in Kilometern fragt und diese in Meilen umrechnet und ausgibt. Beachte, dass 1 Kilometer etwa 0,621371 Meilen entspricht.




13: Berechnung des BMI (Body Mass Index)


Schreibe ein Python-Programm, das den Benutzer nach seinem Gewicht in Kilogramm und seiner Größe in Metern fragt und dann seinen Body Mass Index (BMI) berechnet und ausgibt. Der BMI wird nach folgender Formel berechnet: BMI = Gewicht (kg) / (Größe (m)2)




Aufgabe 14: Zahlen sortieren


Schreibe ein Python-Programm, das den Benutzer nach drei Zahlen fragt und diese Zahlen in aufsteigender Reihenfolge sortiert und ausgibt.




Aufgabe 15: Durchschnitt berechnen


Schreibe ein Python-Programm, das den Benutzer nach fünf Noten fragt (angenommen, die Noten sind auf einer Skala von 1 bis 10) und dann den Durchschnitt dieser Noten berechnet und ausgibt.




Aufgabe 16: Schräge Linien zeichnen


Schreibe ein Python-Programm, das den Benutzer nach einer positiven ganzen Zahl fragt und dann schräge Linien aus Sterne (*) zeichnet. Die Anzahl der Zeilen sollte der eingegebenen Zahl entsprechen. Zum Beispiel, wenn der Benutzer 4 eingibt, sollte das Programm folgendes Muster zeichnen:




Aufgabe 17: Primzahlen finden


Schreibe ein Python-Programm, das den Benutzer nach einer positiven ganzen Zahl fragt und dann alle Primzahlen von 2 bis zur eingegebenen Zahl ausgibt.

*** Eine Primzahl ist eine natürliche Zahl größer als 1, die nur durch 1 und sich selbst ohne Rest teilbar ist. Die ersten Primzahlen sind 2, 3, 5, 7, 11, 13, und so weiter. ***




Aufgabe 18: Faktorielle berechnen


Schreibe ein Python-Programm, das den Benutzer nach einer nicht-negativen ganzen Zahl fragt und dann die Faktorielle dieser Zahl berechnet und ausgibt. Die Faktorielle einer Zahl \( n \) wird als \( n \)! geschrieben und entspricht dem Produkt aller positiven ganzen Zahlen von 1 bis   \( n \).


\[ n! = n \times (n-1) \times (n-2) \times \ldots \times 3 \times 2 \times 1 \]



Aufgabe 19: Primfaktoren finden


Schreibe ein Python-Programm, das den Benutzer nach einer positiven ganzen Zahl fragt und dann alle Primfaktoren dieser Zahl ausgibt. Die Primfaktoren einer Zahl sind die Primzahlen, die diese Zahl ohne Rest teilen.




Aufgabe 20: Palindrom überprüfen


Schreibe ein Python-Programm, das den Benutzer nach einem Wort oder einer Zeichenkette fragt und dann überprüft, ob diese Zeichenkette ein Palindrom ist. Ein Palindrom ist eine Zeichenkette, die von vorne und von hinten gelesen identisch ist. Zum Beispiel sind "Lagerregal" und "Anna" Palindrome.




Normal



Aufgabe 21: Textanalyse - Häufigkeit von Wörtern


Schreibe ein Python-Programm, das einen Text von einem Benutzer einliest und dann die Häufigkeit der einzelnen Wörter im Text zählt und ausgibt. Ignoriere dabei Groß- und Kleinschreibung sowie Satzzeichen. Gib die Wörter und ihre Häufigkeit in absteigender Reihenfolge aus.




Aufgabe 22: Worträtsel erstellen


Schreibe ein Python-Programm, das ein zufälliges Wort aus einer vordefinierten Liste von Wörtern auswählt und daraus ein Worträtsel generiert. Das generierte Rätsel sollte die Buchstaben des Worts zufällig mischen, sodass der Benutzer das ursprüngliche Wort erraten kann. Der Benutzer sollte das Rätsel lösen können, indem er das Wort eingibt.




Aufgabe 23: Temperaturumrechnung


Erstelle ein einfaches Python-Programm, das Temperaturen von Celsius in Fahrenheit und umgekehrt umrechnet. Das Programm fragt zuerst den Benutzer, welche Art von Umrechnung er vornehmen möchte: "c": Von Fahrenheit nach Celsius oder "f": Von Celsius nach Fahrenheit. Nachdem der Benutzer seine Auswahl getroffen hat, wird er aufgefordert, die Temperatur einzugeben, die umgerechnet werden soll. Das Programm berechnet dann die entsprechende Temperatur und gibt das Ergebnis aus.


Formeln:

Von Celsius nach Fahrenheit: (Celsius * 9/5) + 32

Von Fahrenheit nach Celsius: (Fahrenheit - 32) * 5/9




Aufgabe 24: Fibonacci-Folge


Schreibe ein Python-Programm, das den Benutzer nach einer nicht-negativen ganzen Zahl fragt und dann die Fibonacci-Folge bis zu diesem Wert ausgibt. Die Fibonacci-Folge ist eine mathematische Sequenz, bei der jede Zahl die Summe der beiden vorherigen Zahlen ist. Die ersten beiden Zahlen in der Folge sind in der Regel 0 und 1.


Fibonacci-Folge



Aufgabe 25: Wortspiegelung


Schreibe ein Python-Programm, das den Benutzer nach einem Wort fragt und dann das Wort spiegelt, indem es die Buchstaben in umgekehrter Reihenfolge ausgibt. Zum Beispiel sollte das Wort "Python" zu "nohtyP" gespiegelt werden.




Aufgabe 26: Schräge Linien zeichnen (Pyramide)


Schreibe ein Python-Programm, das den Benutzer nach einer positiven ganzen Zahl fragt und dann eine Pyramide aus Sternen (*) zeichnet. Die Anzahl der Zeilen in der Pyramide sollte der eingegebenen Zahl entsprechen. Zum Beispiel, wenn der Benutzer 4 eingibt, sollte das Programm folgendes Muster zeichnen:




Aufgabe 27: Zahlenraten Spiel


Schreibe ein Python-Programm, das ein Zahlenraten-Spiel für den Benutzer implementiert. Das Programm soll sich eine zufällige Zahl zwischen 1 und 100 ausdenken und den Benutzer auffordern, diese Zahl zu erraten. Das Spiel soll folgende Anforderungen erfüllen:

1. Das Programm wählt eine zufällige Zahl zwischen 1 und 100.

2. Der Benutzer hat eine begrenzte Anzahl von Versuchen, um die Zahl zu erraten (zum Beispiel 10 Versuche).

3. Nach jedem Versuch gibt das Programm dem Benutzer Hinweise, ob die geratene Zahl zu hoch oder zu niedrig ist.

4. Das Spiel endet, wenn der Benutzer die richtige Zahl errät oder alle Versuche aufgebraucht sind.

5. Am Ende des Spiels wird dem Benutzer mitgeteilt, ob er gewonnen oder verloren hat.




Aufgabe 28: FizzBuzz


Schreibe ein Python-Programm, das die Zahlen von 1 bis 100 ausgibt. Dabei sollen folgende Regeln gelten:

1. Wenn die Zahl durch 3 ohne Rest teilbar ist, soll "Fizz" ausgegeben werden.

2. Wenn die Zahl durch 5 ohne Rest teilbar ist, soll "Buzz" ausgegeben werden.

3. Wenn die Zahl sowohl durch 3 als auch durch 5 ohne Rest teilbar ist, soll "FizzBuzz" ausgegeben werden.

4. Wenn keine der oben genannten Bedingungen zutrifft, soll die Zahl selbst ausgegeben werden.


Das Programm soll die Zahlen in aufsteigender Reihenfolge ausgeben und die entsprechenden Wörter oder Zahlen gemäß den oben genannten Regeln ersetzen.




Aufgabe 29: Tierarzt - Berechnung der Medikamentendosis


Ein Tierarzt muss die richtige Medikamentendosis für Tiere basierend auf ihrem Gewicht berechnen. Schreibe ein Python-Programm, das den Tierarzt dabei unterstützt. Die Aufgabe lautet wie folgt:


Ein Tierarzt hat ein Medikament, das für die Behandlung von Tieren verwendet wird. Die empfohlene Dosis dieses Medikaments beträgt 10 Milligramm pro Kilogramm Körpergewicht des Tieres. Schreibe ein Programm, das den Tierarzt nach dem Gewicht des Tieres in Kilogramm und der Konzentration des Medikaments in Milligramm pro Milliliter (mg/ml) fragt und dann die richtige Dosis des Medikaments in Millilitern berechnet.


Formel:

Dosis (ml) = (Gewicht des Tieres in Kilogramm) * (Empfohlene Dosis in mg/kg) / (Konzentration des Medikaments in mg/ml)




Aufgabe 30: Zeitumrechnung - Sekunden in Stunden, Minuten und Sekunden


Schreibe ein Python-Programm, das den Benutzer nach einer Anzahl von Sekunden fragt und diese Sekunden in Stunden, Minuten und Sekunden umrechnet. Die Aufgabe lautet wie folgt:


Der Benutzer gibt eine Anzahl von Sekunden ein. Deine Aufgabe ist es, diese Sekunden in Stunden, Minuten und Sekunden umzurechnen und das Ergebnis auszugeben. Verwende die folgende Umrechnung:

- 1 Stunde besteht aus 3600 Sekunden (60 Sekunden pro Minute * 60 Minuten pro Stunde).

- 1 Minute besteht aus 60 Sekunden.




Schwer



Aufgabe 31: Finden des kürzesten Wegs in einem Labyrinth


Implementiere einen A*-Suchalgorithmus, der den kürzesten Weg zwischen zwei Knoten in einem Labyrinth findet. Das Labyrinth ist als zweidimensionales Array gegeben, wobei '0' einen begehbaren Weg und '1' eine Wand repräsentiert. Du kannst nur vertikal und horizontal bewegen, nicht diagonal.


Beispiel für ein Labyrinth:

Python Code

	labyrinth = [
    ['0', '1', '0', '0', '0'],
    ['0', '1', '0', '1', '0'],
    ['0', '0', '0', '1', '0'],
    ['0', '1', '0', '0', '0'],
    ['0', '0', '0', '1', '0']
    ]

	

Startpunkt: (0, 0)

Zielpunkt: (4, 4)


Anforderungen:


Deine Implementierung sollte den A*-Algorithmus verwenden.

Verwende die Manhattan-Distanz als Heuristik.

Der Algorithmus sollte den kürzesten Pfad als Liste von Koordinaten zurückgeben.


Bonusaufgabe


Implementiere eine Funktion, die das Labyrinth und den gefundenen Pfad grafisch darstellt.


Hinweise

Achte darauf, dass deine Implementierung auch für größere Labyrinthe performant ist.




Aufgabe 32: Implementierung von RSA-Verschlüsselung von Grund auf


Deine Aufgabe ist es, den RSA-Verschlüsselungsalgorithmus in Python von Grund auf zu implementieren. RSA ist ein weit verbreiteter Public-Key-Verschlüsselungsalgorithmus, der in einer Vielzahl von Anwendungen eingesetzt wird.


Anforderungen:


Implementiere eine Funktion zur Erzeugung von Schlüsselpaaren (öffentlicher und privater Schlüssel).

Implementiere eine Verschlüsselungsfunktion, die einen Klartext und den öffentlichen Schlüssel nimmt und den verschlüsselten Text zurückgibt.

Implementiere eine Entschlüsselungsfunktion, die den verschlüsselten Text und den privaten Schlüssel nimmt und den Klartext zurückgibt.


Bonusaufgabe


Füge eine Funktion hinzu, die die Korrektheit des Algorithmus durch Verschlüsselung und anschließende Entschlüsselung eines Test-Strings überprüft.

Implementiere RSA mit großen Primzahlen für zusätzliche Sicherheit.


Hinweise

Du darfst keine externen Bibliotheken für die Implementierung der Kernfunktionalität verwenden. Mathematische Operationen sollten manuell implementiert werden.




Aufgabe 33: Erstellung eines Neuronalen Netzes zur Textklassifikation von Grund auf


Deine Herausforderung ist es, ein neuronales Netz zur Textklassifikation in Python zu erstellen. Das Modell sollte in der Lage sein, kurze Textfragmente in vorgegebene Kategorien einzuordnen. Du sollst das Modell von Grund auf schreiben, ohne externe Bibliotheken wie TensorFlow oder PyTorch zu verwenden.


Anforderungen:


Implementiere ein Feedforward-Neuronales Netz.

Verwende den Backpropagation-Algorithmus zur Anpassung der Gewichte.

Trainiere dein Modell mit einem kleinen Datensatz und prüfe seine Genauigkeit.


Bonusaufgabe


Implementiere verschiedene Aktivierungsfunktionen (ReLU, Sigmoid, etc.) und vergleiche ihre Leistung.

Füge eine Möglichkeit zur Speicherung und zum Laden des trainierten Modells hinzu.


Hinweise

Du kannst die mathematische Bibliothek 'numpy' verwenden, aber externe ML-Bibliotheken sind nicht erlaubt.

Du kannst für den Anfang einen binären Klassifikator erstellen und dann auf mehrere Klassen erweitern, wenn du dich sicher fühlst.




Aufgabe 34: Implementierung eines eigenen Web-Servers in Python


Deine Aufgabe ist es, einen einfachen Web-Server in Python zu implementieren, der HTTP-Anfragen entgegennehmen und entsprechende Antworten zurücksenden kann.


Anforderungen:


Verwende den socket-Modul in Python, um einen Grundgerüst für den Web-Server zu erstellen.

Der Server sollte in der Lage sein, einfache GET-Anfragen zu beantworten.

Implementiere die Möglichkeit, statische HTML- und CSS-Dateien aus einem Ordner zu servieren.


Bonusaufgabe


Füge eine einfache Authentifizierung hinzu.

Implementiere einen sehr grundlegenden Router, der verschiedene URLs verarbeiten kann.


Hinweise

Achte darauf, dass der Server mehrere Clients gleichzeitig bedienen kann, eventuell durch Multi-Threading.

Du sollst keine externen Bibliotheken wie Flask oder Django verwenden; alles sollte von Grund auf geschrieben werden.




Aufgabe 35: Ein Chatbot mit Zustandsverwaltung in Python entwickeln


Deine Herausforderung besteht darin, einen Chatbot in Python zu entwickeln, der einfache Konversationen führen kann und den Zustand der Konversation speichert. Mit "Zustand" ist hier gemeint, dass der Chatbot auf frühere Interaktionen eingehen kann.


Anforderungen:


Der Bot sollte grundlegende Begrüßungen, Verabschiedungen und einfache Fragen beantworten können.

Implementiere eine Zustandsverwaltung, damit der Bot sich an vorherige Interaktionen erinnern kann.

Verwende Python-Datenstrukturen, um den Zustand zu speichern (z.B. ein Dictionary).


Bonusaufgabe


Füge dem Bot eine einfache Natural Language Processing (NLP) Funktionalität hinzu, um den Text besser zu verstehen.

Implementiere eine einfache Benutzerschnittstelle (UI), z.B. in der Konsole oder als Webanwendung.


Hinweise

Du kannst für den Anfang einen regelbasierten Ansatz verwenden und später auf maschinelles Lernen umsteigen, wenn du möchtest.

Halte den Code so modular wie möglich, um spätere Erweiterungen zu erleichtern.




Aufgabe 36: Ein simples Blockchain-System in Python


Dein Ziel ist es, ein einfaches, aber funktionales Blockchain-System in Python zu implementieren. Dies wird dir ein grundlegendes Verständnis für die Technologie und ihre Funktionsweise vermitteln.


Anforderungen:


Implementiere eine Klasse für einen Block, der einen Index, einen Zeitstempel, Transaktionsdaten, einen vorherigen Hash und einen eigenen Hash enthält.

Implementiere eine Blockchain-Klasse, die in der Lage ist, Blöcke zu erzeugen und zu validieren.

Erstelle Funktionen zum Hinzufügen von Transaktionen und zum Mining neuer Blöcke.


Bonusaufgabe


Füge eine Funktion hinzu, um die Integrität der gesamten Blockchain zu überprüfen.

Implementiere eine einfache Benutzeroberfläche (CLI oder GUI), um mit der Blockchain zu interagieren.


Hinweise

Verwende den SHA-256-Hash-Algorithmus für die Hash-Berechnung.

Achte darauf, dass die Blockchain in einer Liste oder einem ähnlichen Datenformat gespeichert ist.




Aufgabe 37: Web Scraping einer Nachrichtenseite mit Python


Deine Herausforderung besteht darin, ein Web-Scraping-Tool in Python zu schreiben, das Nachrichten von einer bestimmten Nachrichten-Website extrahiert und in ein strukturiertes Format (z.B. JSON, CSV) speichert.


Anforderungen:


Verwende die Python-Bibliothek 'BeautifulSoup' oder 'Scrapy' für das Web-Scraping.

Extrahiere wichtige Informationen wie Titel, Autor, Veröffentlichungsdatum und den eigentlichen Nachrichtentext.

Speichere die gesammelten Daten in einem strukturierten Format.


Bonusaufgabe


Implementiere eine Methode, die automatisch jeden Tag, jede Woche oder jeden Monat die neuesten Nachrichten abruft.

Füge eine Funktion hinzu, die die Daten in einer Datenbank speichert.


Hinweise

Beachte die Nutzungsbedingungen der jeweiligen Website und respektiere die 'robots.txt'.

Du kannst mit einer einzigen Seite beginnen und später weitere Seiten hinzufügen.




Aufgabe 38: Implementierung eines Recommender-Systems


Deine Aufgabe ist es, ein einfaches Recommender-System in Python zu implementieren. Das System soll in der Lage sein, Empfehlungen für Produkte, Filme oder Bücher basierend auf Benutzerbewertungen zu geben.


Anforderungen:


Verwende den Collaborative Filtering-Ansatz, um Empfehlungen zu generieren.

Du kannst Bibliotheken wie 'scikit-learn' oder 'surprise' zur Vereinfachung verwenden.

Das System sollte in der Lage sein, ähnliche Items oder ähnliche Benutzer zu finden.


Bonusaufgabe


Implementiere eine Funktion, die neue Benutzer und Items aufnehmen kann.

Verwende eine Datenbank zur Speicherung der Bewertungen und Empfehlungen.


Hinweise

Du kannst für den Start synthetische Daten verwenden oder einen öffentlichen Datensatz verwenden (z.B. MovieLens-Datensatz).

Denke daran, das Modell regelmäßig mit neuen Daten zu trainieren.




Aufgabe 39: Implementierung einer Chat-Anwendung mit WebSockets


Deine Aufgabe ist es, eine einfache Chat-Anwendung in Python zu implementieren, die WebSockets für Echtzeitkommunikation verwendet.


Anforderungen:


Verwende die 'websockets' Bibliothek für den Server und HTML/JavaScript für den Client.

Implementiere Grundfunktionen wie das Senden und Empfangen von Nachrichten.

Erlaube mehrere Benutzer, sich gleichzeitig zu verbinden.


Bonusaufgabe


Füge eine Benutzerauthentifizierung hinzu.

Implementiere Chat-Räume, in denen Benutzer spezielle Themen diskutieren können.


Hinweise

Beachte, dass du sowohl serverseitigen als auch clientseitigen Code schreiben musst.

Du kannst den Client mit einfachem HTML und JavaScript umsetzen.




Aufgabe 40: Erstellung eines Mini-Compilers in Python


Deine Aufgabe ist es, einen Mini-Compiler in Python zu entwickeln. Der Compiler soll einfache arithmetische Ausdrücke und Variablenzuweisungen interpretieren und ausführen können.


Anforderungen:


Implementiere einen Lexer, um den Eingabestring in Tokens zu zerlegen.

Schreibe einen Parser, der die Tokens in einen Abstract Syntax Tree (AST) umwandelt.

Füge einen Evaluator hinzu, der den AST auswertet und das Ergebnis zurückgibt.


Bonusaufgabe


Füge Unterstützung für Schleifen und bedingte Anweisungen hinzu.

Implementiere einfache Fehlerbehandlungen für Syntaxfehler.


Hinweise

Du kannst für den Lexer reguläre Ausdrücke verwenden.

Der Parser sollte rekursiv absteigend sein, um die Ausdrücke korrekt zu parsen.




Experte



Lieber Pythonworld.online Besucher Der Abschnitt Experte befindet ist noch in Entwicklung.