Gestion de formations

Nous allons gérer des formations. Une formation est représentée par un nom (son sujet), sa durée (int, nombre de jours) et le nombre de participants. Nous allons utilser des dictionnaires pour traiter ces données complexes.

Plutôt que de traiter les données à la main, nous allons écrire des fonctions pour les différentes actions.

Commencez par écrire une fonction qui prend en paramètre un nom de formation et sa durée et retourne un dictionnaire


In [ ]:
def create_training(subject, duration):
    return {'subject': subject, 'duration': int(duration)}

Écrivez une fonction qui permet de rajouter un nombre n de participants passé en paramètre à une formation. n est un entier positif.


In [ ]:
def add_attendees(training, how_many):
    training['attendees'] = training.get('attendees', 0) + int(how_many)

Créez des foramtions 'Python', 'Initiation programmation', 'Python Spécifique' de 5, 2 et 3 jours. Stockez ces formations dans une liste.


In [ ]:
trainings_descritpion = [('Python', 5), ('Initiation programmation', 2), ('Python Spécifique', 3)]

[create_training(subject, duration)
 for subject, duration in trainings_descritpion]

In [ ]:
[create_training(*training)
 for training in trainings_descritpion]

In [ ]:
trainings = [create_training(*training) 
             for training in trainings_descritpion]

Ajoutez à chaque formation quelques participants.


In [ ]:
add_attendees(trainings[0], 2)
add_attendees(trainings[1], 4)
add_attendees(trainings[0], 3)

Créez une fonction qui prend en paramètre une liste de formations et affiche pour chaque formation son nom et son cout en fonction du nombre de jours et de participants.


In [ ]:
def display_cost(trainigs, cost_per_day=200):
    for training in trainings:
        print(f"{training['subject']}: {training['duration'] * training.get('attendees', 0) * cost_per_day} €")

In [ ]:
display_cost(trainings)