Aller au contenu

Extraction d'une partie des données⚓︎

Exemple pour les exercices suivants

La fonction suivante permet d'extraire la liste des noms du pokedex :

Code à copier dans votre fichier
def liste_noms(pokedex):
    noms = []
    for p in pokedex:
        noms.append(nom(p))
    return noms

Il est possible de l'écrire de façon plus simple en utilisant une définition par compréhension :

Vous pouvez aussi copier cette version
def liste_noms(pokedex):
    return [nom(p) for p in pokedex]

Pour les exercices suivants, vous pouvez utiliser la forme que vous préférez.

Exercice 5

Écrire une fonction selection_par_generation qui prend en paramètres un entier gen et une liste de dictionnaires pokedex, et qui renvoie la liste de tous les pokémons qui sont de la génération donnée.

Exemples d'utilisation
>>> liste_noms(selection_par_generation(1, pokedex))
['Bulbizarre', 'Herbizarre', 'Florizarre', 'Méga-Florizarre',...
Exercice 6

Écrire une fonction selection_par_type qui prend en paramètres un texte t et une liste de dictionnaires pokedex, et qui renvoie la liste de tous les pokémons du pokédex qui ont le type t.

Indication

La fonction types renvoie une liste de types. Il faut donc vérifier si le type passé en paramètre en dans cette liste ou pas.

Exemples d'utilisation
>>> selection_par_type("Fée", pokedex)
[OrderedDict([('Nom', 'Mélofée'), ('HP', 70), ('Attaque', 45),...
>>> len(selection_par_type("Fée", pokedex))
40
>>> liste_noms(selection_par_type("Fée", pokedex))
['Mélofée', 'Mélodelfe', 'Rondoudou', 'Grodoudou', 'M. Mime',...
Exercice 7

Écrire une fonction plus_rapide_que qui prend en paramètre (pokemon, pokedex) qui renvoie la liste de tous les pokémons du pokédex qui sont strictement plus rapides que pokemon.

Exemples d'utilisation
>>> plus_rapide_que(bulbizarre, pokedex)
[{'Nom': 'Herbizarre', 'HP': 60, 'Attaque': 62, 'Défense': 63, 'Vitesse': 60,
  'Génération': 1, 'Types': ['Plante', 'Poison'], 'Légendaire': False},
  ...
]
>>> len(plus_rapide_que(cherche('Pikachu', pokedex), pokedex))
184
Exercice 8

Écrire une fonction plus_fort qui prend en paramètre une liste de dictionnaires pokedex et qui renvoie le pokémon avec la valeur d'attaque maximale contenue dans le Pokédex. S'il y en a plusieurs, le premier rencontré est renvoyé.

Exemples d'utilisation
>>> plus_fort(selection_par_generation(1, pokedex))
OrderedDict([('Nom', 'Méga-Mewtwo X'), ('HP', 106), ('Attaque', 190),
             ('Défense', 100), ('Vitesse', 130), ('Génération', 1),
         ('Types', ['Psy', 'Combat'])])