Add ai generated exercises and their solutions.

This commit is contained in:
paulusja 2026-04-30 17:04:47 +02:00
parent a4d25637c4
commit f7c2959226
4 changed files with 138 additions and 0 deletions

28
ai_exercises/01.py Normal file
View File

@ -0,0 +1,28 @@
# Die Aufgabe: Der "Text-Analysator"
# Schreibe eine Funktion namens analysiere_text, die einen String entgegennimmt und ein Dictionary mit folgenden Informationen zurückgibt:
# anzahl_zeichen: Die Gesamtzahl der Zeichen (inkl. Leerzeichen).
# anzahl_woerter: Wie viele Wörter der Text enthält.
# ist_lang: Ein Boolean, der True ist, wenn der Text mehr als 50 Zeichen hat, andernfalls False.
def analysiere_text(text):
# HIER DEINEN CODE EINFÜGEN
ergebnis = {
'anzahl_zeichen': len(text),
'anzahl_woerter': len(text.split()),
'ist_lang': len(text) > 50
}
return ergebnis
# --- Main-Abschnitt ---
if __name__ == "__main__":
test_text = "Python programmieren macht Spaß und ist logisch."
analyse = analysiere_text(test_text)
print(f"Text: {test_text}")
print(f"Ergebnis: {analyse}")

22
ai_exercises/02.py Normal file
View File

@ -0,0 +1,22 @@
# Die Aufgabe: Der "Listen-Filter & Transformer"
# Schreibe eine Funktion namens verarbeite_zahlen, die eine Liste von Zahlen entgegennimmt. Die Funktion soll eine neue Liste zurückgeben, die:
# Nur die geraden Zahlen aus der ursprünglichen Liste enthält.
# Jede dieser geraden Zahlen quadriert (hoch 2 nimmt).
# Die Liste am Ende absteigend sortiert (vom größten zum kleinsten Wert).
def verarbeite_zahlen(zahlen_liste):
return sorted([zahl*zahl
for zahl in zahlen_liste if zahl % 2 == 0], reverse=True)
# --- Main-Abschnitt ---
if __name__ == "__main__":
meine_zahlen = [3, 8, 2, 5, 10, 7, 4]
ergebnis = verarbeite_zahlen(meine_zahlen)
print(f"Eingabe: {meine_zahlen}")
print(f"Ergebnis: {ergebnis}")

46
ai_exercises/03.py Normal file
View File

@ -0,0 +1,46 @@
# Die Aufgabe: Der "Warenkorb-Manager" (OOP)
# Erstelle die Klasse Warenkorb. Sie muss so entworfen sein, dass sie mit dem unten stehenden main-Block funktioniert.
# Anforderungen:
# Speicherung: Intern sollen die Produkte in einer Liste gespeichert werden.
# Methoden:
# hinzufuegen(name, preis): Speichert ein Produkt.
# gesamtpreis(): Liefert die Summe aller Preise zurück.
# anzahl_artikel(): Liefert die Anzahl der Produkte zurück.
# --- HIER DIE KLASSE WARENKORB ERSTELLEN ---
class Warenkorb:
def __init__(self):
self.__waren = []
def hinzufuegen(self, produkt, preis):
self.__waren.append((produkt, preis))
def gesamtpreis(self):
return sum([preis for _, preis in self.__waren])
def anzahl_artikel(self):
return len(self.__waren)
# --- Main-Abschnitt ---
if __name__ == "__main__":
# Instanzierung
mein_korb = Warenkorb()
# Methodenaufrufe
mein_korb.hinzufuegen("Apfel", 0.99)
mein_korb.hinzufuegen("Brot", 2.50)
mein_korb.hinzufuegen("Kaffee", 5.95)
# Ausgaben
print(f"Artikel im Korb: {mein_korb.anzahl_artikel()}")
print(f"Gesamtsumme: {mein_korb.gesamtpreis():.2f}")

42
ai_exercises/04.py Normal file
View File

@ -0,0 +1,42 @@
# Die Aufgabe: Das "Bibliotheks-System"
# Wir wollen verschiedene Medientypen in einer Bibliothek verwalten. Alle Medien haben einen Titel, aber Bücher haben zusätzlich eine Seitenzahl, während Filme eine Laufzeit haben.
# Deine Mission:
# Erstelle eine Basisklasse Medium.
# Erstelle zwei Unterklassen: Buch und Film, die von Medium erben.
# Nutze die Magic Method __str__, damit man ein Objekt einfach mit print(objekt) schön formatiert ausgeben kann.
# --- HIER DIE KLASSEN Medium, Buch UND Film ERSTELLEN ---
class Medium:
def __init__(self, titel, laenge):
self._titel = titel
self._laenge = laenge
class Buch(Medium):
def __str__(self):
return f'BUCH: {self._titel} ({self._laenge} Seiten)'
class Film(Medium):
def __str__(self):
return f'FILM: {self._titel} ({self._laenge} Minuten)'
# --- Main-Abschnitt ---
if __name__ == "__main__":
# Erstellung der Objekte
buch1 = Buch("Der Prozess", 280)
film1 = Film("Inception", 148)
# Medien in einer Liste sammeln
bibliothek = [buch1, film1]
# Ausgabe der Medien (nutzt automatisch die __str__ Methode)
for medium in bibliothek:
print(medium)