<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.bzz.ch/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.bzz.ch/feed.php">
        <title>BZZ - Modulwiki - modul:m323:learningunits:lu03:loesungen</title>
        <description></description>
        <link>https://wiki.bzz.ch/</link>
        <image rdf:resource="https://wiki.bzz.ch/_media/wiki/logo.png" />
       <dc:date>2026-05-21T07:07:17+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/abschreibung?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/callback?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/filter?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/filtertransform?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/lager?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/start?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/taskscheduler?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/timer?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/transformation?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/verzeichnisbaum?rev=1711631267&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/zinseszins?rev=1711631267&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.bzz.ch/_media/wiki/logo.png">
        <title>BZZ - Modulwiki</title>
        <link>https://wiki.bzz.ch/</link>
        <url>https://wiki.bzz.ch/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/abschreibung?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L07 - Abschreibung von Anlagen</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/abschreibung?rev=1711631267&amp;do=diff</link>
        <description>LU03.L07 - Abschreibung von Anlagen


def calculate_depreciation(initial_value, depreciation_rate, years):
    &quot;&quot;&quot;
    Berechnet den Restwert einer Anlage nach einer bestimmten Anzahl von Jahren unter Berücksichtigung der jährlichen Abschreibung.

    Args:
    initial_value (float): Der Anfangswert der Anlage.
    depreciation_rate (float): Der jährliche Abschreibungssatz als Dezimalzahl (z.B. 0.10 für 10%).
    years (int): Die Anzahl der Jahre, für die die Abschreibung berechnet werden soll.
…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/callback?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L09 - GUI-Interaktion mit Callbacks in `tkinter`</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/callback?rev=1711631267&amp;do=diff</link>
        <description>LU03.L09 - GUI-Interaktion mit Callbacks in `tkinter`



import tkinter as tk

class GreetingApp:
    &quot;&quot;&quot;
    Eine einfache GUI-Anwendung, die es einem Benutzer ermöglicht, seinen Namen in ein Eingabefeld einzugeben.
    Nach Eingabe seines Namens und Klick auf einen Button wird eine Begrüßungsnachricht angezeigt.
    &quot;&quot;&quot;

    def __init__(self, root):
        &quot;&quot;&quot;
        Initialisiert die GUI-Komponenten.

        Args:
        - root (tk.Tk): Das Hauptfenster der Anwendung.
        &quot;&quot;&quot;
       …</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/filter?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L04 - Datenfilterung mit First-Class Functions</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/filter?rev=1711631267&amp;do=diff</link>
        <description>LU03.L04 - Datenfilterung mit First-Class Functions


def filter_by_age(students, min_age):
    result = []
    for student in students:
        if student[&#039;age&#039;] &gt;= min_age:
            result.append(student)
    return result

def filter_by_class(students, class_name):
    result = []
    for student in students:
        if student[&#039;class&#039;] == class_name:
            result.append(student)
    return result

def filter_students(students, filter_function, *args):
    return filter_function(stud…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/filtertransform?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L08 - Länderdaten</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/filtertransform?rev=1711631267&amp;do=diff</link>
        <description>LU03.L08 - Länderdaten


import json

def filter_european_countries(country):
    &quot;&quot;&quot;
    Filter European countries from the list.

    Args:
    - country: A dictionary representing a country

    Returns:
    - True if the country is in Europe, otherwise False
    &quot;&quot;&quot;
    return country[&#039;region&#039;] == &#039;Europe&#039;


def filter_large_population_countries(country):
    &quot;&quot;&quot;
    Filter countries with a population of more than 10 million.

    Args:
    - country: A dictionary representing a country

   …</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/lager?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L05 - Verwaltung von Lagerbeständen</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/lager?rev=1711631267&amp;do=diff</link>
        <description>LU03.L05 - Verwaltung von Lagerbeständen


def manage_inventory(products, calculation_function, *args):
    &quot;&quot;&quot;
    Diese Funktion ist eine Higher-Order Funktion, die eine Liste von Produkten und eine Berechnungsfunktion akzeptiert.
    Die Berechnungsfunktion wird auf die Liste der Produkte angewendet, um eine spezifische Berechnung durchzuführen,
    z.B. den Gesamtwert des Lagerbestands berechnen oder Produkte unter einem bestimmten Bestand filtern.

    :param products: Liste von Produkten, …</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/start?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03 - Loesungen</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/start?rev=1711631267&amp;do=diff</link>
        <description>LU03 - Loesungen



Loesungen

	* LU03.L01 - Rekursive Suche in einem Verzeichnisbaum
	* LU03.L02 - Zinseszins-Berechnung
	* LU03.L03 - Task Scheduler
	* LU03.L04 - Datenfilterung mit First-Class Functions
	* LU03.L05 - Verwaltung von Lagerbeständen
	* LU03.L06 -  Transformation von Daten
	* LU03.L07 - Abschreibung von Anlagen
	* LU03.L08 - Länderdaten
	* LU03.L09 - GUI-Interaktion mit Callbacks in `tkinter`
	* LU03.L10 - Timer und API-Call</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/taskscheduler?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L03 - Task Scheduler</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/taskscheduler?rev=1711631267&amp;do=diff</link>
        <description>LU03.L03 - Task Scheduler

Simpel: Alle Tasks haben identische Verzögerungen


import time
def task1():
    print(&#039;Task 1 executed!&#039;)

def task2():
    print(&#039;Task 2 executed!&#039;)

def task_scheduler(tasks, delay):
    for task in tasks:
        task()
        time.sleep(delay)

if __name__ == &#039;__main__&#039;:
    tasks = [task1, task2]
    delay = 2
    task_scheduler(tasks, delay)</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/timer?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L10 - Timer und API-Call</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/timer?rev=1711631267&amp;do=diff</link>
        <description>LU03.L10 - Timer und API-Call

Einführung

Das bereitgestellte Programm demonstriert die Kraft der Asynchronität in Python. Es verwendet asyncio und httpx für asynchrone Operationen und führt zwei parallele Aufgaben aus: Einen API-Aufruf alle 3 Sekunden und einen Timer, der jede Sekunde hochzählt.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/transformation?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L06 -  Transformation von Daten</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/transformation?rev=1711631267&amp;do=diff</link>
        <description>LU03.L06 -  Transformation von Daten


def transform_employee_data(employees, transformation_function, *args):
    &quot;&quot;&quot;
    Higher-Order function that accepts a list of employees and a transformation function.
    Applies the transformation function to the list of employees.

    :param employees: List of employees, each employee is a dictionary.
    :param transformation_function: The function to be applied to the employee list.
    :param *args: Additional arguments that may be required by the …</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/verzeichnisbaum?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L01 - Rekursive Suche in einem Verzeichnisbaum</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/verzeichnisbaum?rev=1711631267&amp;do=diff</link>
        <description>LU03.L01 - Rekursive Suche in einem Verzeichnisbaum


directory_tree = {
    &#039;type&#039;: &#039;directory&#039;,
    &#039;name&#039;: &#039;root&#039;,
    &#039;path&#039;: &#039;/&#039;,
    &#039;children&#039;: [
        {
            &#039;type&#039;: &#039;directory&#039;,
            &#039;name&#039;: &#039;home&#039;,
            &#039;path&#039;: &#039;/home&#039;,
            &#039;children&#039;: [
                {
                    &#039;type&#039;: &#039;directory&#039;,
                    &#039;name&#039;: &#039;user&#039;,
                    &#039;path&#039;: &#039;/home/user&#039;,
                    &#039;children&#039;: [
                        {&#039;type&#039;: &#039;file&#039;, &#039;name&#039;: &#039;…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/zinseszins?rev=1711631267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-28T13:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>LU03.L02 - Zinseszins-Berechnung</title>
        <link>https://wiki.bzz.ch/modul/m323/learningunits/lu03/loesungen/zinseszins?rev=1711631267&amp;do=diff</link>
        <description>LU03.L02 - Zinseszins-Berechnung

Musterlösung für die rekursive Funktion

Die rekursive Funktion zur Berechnung des Zinseszinses könnte wie folgt aussehen:


  def compound_interest(principal, rate, time):
      &quot;&quot;&quot;
      Berechnet das Endguthaben einer Investition unter Berücksichtigung des Zinseszinses.
  
      Args:
      principal (float): Der Anfangsbetrag der Investition.
      rate (float): Der jährliche Zinssatz als Dezimalzahl (z.B. 0.05 für 5%).
      time (int): Die Laufzeit der Inv…</description>
    </item>
</rdf:RDF>
