15 ‐ les boucles - darko-itpro/formation-Python_fondamentaux GitHub Wiki
Dans cet exercice, nous allons simuler le comportement du media-center PyFlix.
Dans le module pyflix.datasource
, la fonction get_season()
peut prendre deux paramètres, le premier est le nom d'une série, le second est le nom (ou identifiant) d’un utilisateur. Sa signature est get_season(show_name: str = None, user: str = None)
.
Nous récupérons alors la liste des épisodes eux-même sous forme d’un dictionnaire.
Vous pouvez obtenir les épisodes de The Big Bang Theory de la manière suivante :
pyflix.datasource.get_season('The Big Bang Theory', "Sheldon Cooper")
Nous voulons dans un premier temps écrire une fonction qui prends une saison complète en paramètre et retourne la liste des épisodes restant à voir, c’est à dire l’extrait de la liste à partir du premier épisode non vu.
Vous pouvez récupérer la liste des épisodes de Big Bang Theory pour vous faire des jeux de données. Le retour de cette fonction servira de donnée « de prod’ ».
Écrivez une fonction get_playlist_from(season: list) -> list
qui retourne la liste des épisodes restant à voir. Cette liste commence à partir du premier épisode non vu jusqu’à la fin. Cette fonction retourne donc une liste d’épisodes qui peut être vide.
Si vous avez des difficultés à répondre à la question, vous pouvez consulter les indices suivants : Les étapes de votre fonction devraient être :
Indice 1
Itérer sur les épisodes. Vous pouvez afficher chaque épisode pour valider que vous le faites.Indice 2
Identifier les épisodes que vous n’avez pas vu. Vous pouvez n’afficher que ceux là lors de votre itération pour valider votre code.Indice 3
Identifier le premier épisode qu’il vous reste à voir. N’affichez alors que celui-là.Indice 4
Déterminer l’indice de cet épisodeIndice 5
Utiliser cet indice pour créer grâce au slicing une nouvelle liste des épisodes qu’il reste à voir.J’ai à nouveau 2 heures ce soir et je souhaite regarder des épisodes qu’il me reste à voir de la saison de Big Bang Theory.
Vous allez donc récupérer le retour de get_season(show_name: str = None, user: str = None)
. Fournissez bien un paramètre name
pour obtenir une liste d’épisodes avec l'information vus/non vus. Obtenez la playlist des épisodes qu’il me reste à voir grâce à la fonction de la première partie.
Nous allons ensuite simuler le fonctionnement d’un media-center. Affichez le titre de l’épisode suivant en le supprimant de la playlist. Répétez ceci pour autant d’épisodes que je peux regarder en 2 heures.
Commencez par résoudre le problème au plus simple. Si vous écrivez une fonction, soyez cohérent dans le choix des paramètres. Vous pouvez afficher les listes en fin de programme pour valider le traitement.
Lorsque vous supprimez un épisode de la playlist, basculez le flag vu/pas vu à True
dans la liste de référence.
Indice : rappelez-vous qu’en Python, tout est référence…