diff --git a/ai_exercises/01.py b/ai_exercises/01.py new file mode 100644 index 0000000..a2b5a65 --- /dev/null +++ b/ai_exercises/01.py @@ -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}") \ No newline at end of file diff --git a/ai_exercises/02.py b/ai_exercises/02.py new file mode 100644 index 0000000..ab1c78a --- /dev/null +++ b/ai_exercises/02.py @@ -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}") \ No newline at end of file diff --git a/ai_exercises/03.py b/ai_exercises/03.py new file mode 100644 index 0000000..49a4b62 --- /dev/null +++ b/ai_exercises/03.py @@ -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}€") \ No newline at end of file diff --git a/ai_exercises/04.py b/ai_exercises/04.py new file mode 100644 index 0000000..7364695 --- /dev/null +++ b/ai_exercises/04.py @@ -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) \ No newline at end of file