<jupyter_start><jupyter_text>AufgabeQuelle: https://exercism.org/tracks/python/exercises/guidos-gorgeous-lasagna/Sie werden einen Code schreiben, der Ihnen hilft, eine wunderschöne Lasagne aus Ihrem Lieblingskochbuch zu kochen.Sie haben fünf Aufgaben, die sich alle auf das Kochen Ihres Rezepts beziehen. Definieren Sie die erwartete Backzeit in MinutenDefinieren Sie eine EXPECTED_BAKE_TIME-Konstante, die angibt, wie viele Minuten die Lasagne im Ofen backen soll. Laut Kochbuch sollte die Lasagne 40 Minuten im Ofen sein: Berechnen Sie die verbleibende Backzeit in MinutenImplementieren Sie die bake_time_remaining()-Funktion, die die tatsächlichen Minuten, die die Lasagne im Ofen war, als Argument annimmt und zurückgibt, wie viele Minuten die Lasagne basierend auf der EXPECTED_BAKE_TIME noch backen muss. Berechnen Sie die Vorbereitungszeit in MinutenImplementieren Sie die preparation_time_in_minutes()-Funktion, die die Anzahl der Schichten, die Sie der Lasagne hinzufügen möchten, als Argument verwendet und zurückgibt, wie viele Minuten Sie damit verbringen würden, sie zu machen. Angenommen, jede Schicht dauert 2 Minuten, um sich vorzubereiten. Berechnen Sie die gesamte verstrichene Garzeit (Vorbereiten + Backen) in MinutenImplementieren Sie die elapsed_time_in_minutes()-Funktion mit zwei Parametern: number_of_layers(die Anzahl der Schichten, die der Lasagne hinzugefügt werden) und elapsed_bake_time(die Anzahl der Minuten, die die Lasagne im Ofen gebacken hat). Diese Funktion sollte die Gesamtzahl der Minuten, die Sie bisher gekocht haben (als Summe Ihrer Vorbereitungszeit und der Zeit, die die Lasagne bereits im Ofen gebacken hat), zurückgeben. Aktualisieren Sie den Code, so dass jede Funktion korrekt dokumentiert ist.Gehen Sie den Code durch und fügen Sie Notizen und Dokumentation hinzu, so wie es bspw. bei der Funktionen bake_time_remaining() gezeigt ist.   Konzepte- Variablen und Konstanten- Funktionen- Addition, Subtraktion und Multiplikation- Dokumentation von Funktionen  Automatische Überprüfung<jupyter_code>nachricht = "Ihre Implementierung von {} ist {}"

true_or_false = bake_time_remaining(10) == 30
print(nachricht.format("bake_time_remaining()", true_or_false))

true_or_false = preparation_time_in_minutes(12) == 24
print(nachricht.format("preparation_time_in_minutes()", true_or_false))

true_or_false = elapsed_time_in_minutes(10, 20) == 40
print(nachricht.format("elapsed_time_in_minutes()", true_or_false))<jupyter_output><empty_output><jupyter_text>Ihre Lösung<jupyter_code># TODO: Definiere die Konstante 'EXPECTED_BAKE_TIME'
# TODO: Definiere die Konstante 'PREPARATION_TIME'


# TODO: Definiere die Funktion 'bake_time_remaining()'
def bake_time_remaining():
    """Berechnen Sie die verbleibende Backzeit.

    :param elapsed_bake_time: int Backzeit bereits abgelaufen.
    :return: int verbleibende Backzeit abgeleitet von 'EXPECTED_BAKE_TIME'.

    Funktion, sterben die tatsächlichen Minuten benötigt, in denen die sterben im Ofen war, als
    ein Argument und gibt zurück, wie viele Minuten die Lasagne noch braucht, um zu backen
    basierend auf der `EXPECTED_BAKE_TIME`.
    """

    pass

# TODO: Definiere die Funktion 'preparation_time_in_minutes()'

# TODO: Definiere die Funktion 'elapsed_time_in_minutes()'<jupyter_output><empty_output><jupyter_text>Lösungsvorschlag<jupyter_code>EXPECTED_BAKE_TIME = 40
PREPARATION_TIME = 2

def bake_time_remaining(elapsed_bake_time):
    """Calculate the bake time remaining.

    :param elapsed_bake_time: int baking time already elapsed.
    :return: int remaining bake time derived from 'EXPECTED_BAKE_TIME'.

    Function that takes the actual minutes the lasagna has been in the oven as
    an argument and returns how many minutes the lasagna still needs to bake
    based on the `EXPECTED_BAKE_TIME`.
    """
    return EXPECTED_BAKE_TIME - elapsed_bake_time

def preparation_time_in_minutes(number_of_layers):
    """Calculate the preparation time.

    :param number_of_layers: int number of layers.
    :return: int preparation time.
    
    Function that ...
    """
    return PREPARATION_TIME * number_of_layers
    
def elapsed_time_in_minutes(number_of_layers, elapsed_bake_time):
    """Calculate the preparation time.

    :param number_of_layers: int .
    :param elapsed_bake_time: int .
    :return: int preparation time.

    Function that calculates the total time elapsed for 
    preparation and baking based on `PREPARATION_TIME` per layer
    """
    return preparation_time_in_minutes(number_of_layers) + elapsed_bake_time<jupyter_output><empty_output><jupyter_text>AnwendungEin kurzes Beispiel, wie man den Code nutzen könnte ...<jupyter_code>lagen = 5
abgelaufene_backzeit = 10

zeit = elapsed_time_in_minutes(lagen, abgelaufene_backzeit)
antwort = "Gesamtzeit: {} Minuten (Lagen: {}, bisherige Backzeit: {})"
              
print(antwort.format(zeit, lagen, abgelaufene_backzeit))<jupyter_output>Gesamtzeit: 20 Minuten (Lagen: 5, bisherige Backzeit: 10)
{'fraction_non_alphanumeric': 0.06377858002406739, 'fraction_numerical': 0.005615724027276374, 'mean_word_length': 5.614058355437666, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 16, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '604687', 'license': 'MIT', 'n_tokens_mistral': 1694, 'n_tokens_neox': 1662, 'n_words': 499, 'path': 'exercises/exercism.org/Basics/Guidos_Gorgeous_Lasagna_solution.ipynb', 'repo_name': 'rcmlz/edu', 'size': '4986'}