diff --git a/solutions/python/guidos-gorgeous-lasagna/1/lasagna.py b/solutions/python/guidos-gorgeous-lasagna/1/lasagna.py new file mode 100644 index 0000000..dd57d37 --- /dev/null +++ b/solutions/python/guidos-gorgeous-lasagna/1/lasagna.py @@ -0,0 +1,70 @@ +"""Functions used in preparing Guido's gorgeous lasagna. + +Learn about Guido, the creator of the Python language: +https://en.wikipedia.org/wiki/Guido_van_Rossum + +This is a module docstring, used to describe the functionality +of a module and its functions and/or classes. +""" + + +#TODO: define your EXPECTED_BAKE_TIME (required) and PREPARATION_TIME (optional) constants below. + +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 (in minutes) 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 + + +#TODO: Define the 'preparation_time_in_minutes()' function below. +# To avoid the use of magic numbers (see:https://en.wikipedia.org/wiki/Magic_number_(programming)), you should define a PREPARATION_TIME constant. +# You can do that on the line below the 'EXPECTED_BAKE_TIME' constant. +# This will make it easier to do calculations, and make changes to your code. + +def preparation_time_in_minutes(number_of_layers): + """Calculate the preparation time in minutes. + + Parameters: + number_of_layers (int): The number of layers in the lasagna. + + Returns: + int: The total preparation time (in minutes) gotten by multiplying the number of layers by a constant preparation time of 2 mins . + + """ + return number_of_layers * PREPARATION_TIME + + + + +#TODO: define the 'elapsed_time_in_minutes()' function below. +def elapsed_time_in_minutes(number_of_layers, elapsed_bake_time): + """Calculate the elapsed cooking time. + + Parameters: + number_of_layers (int): The number of layers in the lasagna. + elapsed_bake_time (int): Time the lasagna has been baking in the oven. + + Returns: + int: The total time elapsed (in minutes) preparing and baking. + + This function takes two integers representing the number of lasagna + layers and the time already spent baking the lasagna. It calculates + the total elapsed minutes spent cooking (preparing + baking). + + """ + + return preparation_time_in_minutes(number_of_layers) + elapsed_bake_time + + +# TODO: Remember to go back and add docstrings to all your functions +# (you can copy and then alter the one from bake_time_remaining.)