On s’intéresse à des super-héros Marvel.
a) Écrire sous forme de dictionnaires les personnages Marvel que sont Thor, La Guêpe, Black Panther et Doctor Strange. Doivent être précisé leur nom, leur origine (terrien ou autre), leur sexe et le port éventuel d’une cape.
b) On dispose de la description d’un dernier super-héropeter_quill
peter_quill = {'Nom': [('Peter', 'Quill'), 'Star-Lord'], 'Sexe': 'H', "Port d'une cape": False, 'Origine': 'Terrien', 'Origine2': 'Autre'}
Que doit-on écrire dans la console Python pour pouvoir accéder uniquement à son nom de famille
'Quill'
?
Rémi a fait deux parties sur le jeu Pokemon. Lors de sa première partie, il a affronté:
On représente cette partie à l’aide du dictionnaire ci-dessous:
partie1 = {
'Spearow': ('Route 3', 20, 15),
'Mankey': ('Route 3', 18, 12),
'Cottonee': ('Maedow', 22, 20),
'Zubat': ('Cave', 25, 18),
'Diglett': ('Cave', 26, 16)
}
De même, pour la seconde partie, sur les mêmes lieux que précédemment, il a été victorieux 18 fois sur 20 affrontements contre des spearows, 14 fois sur 22 affrontements contre des mankeys, 13 fois sur 20 contre des zubats et enfin 16 sur 18 contre des digletts.
a) Donner la représentation de la seconde partie de la même façon que la première partie.
b) Rémi a oublié de préciser que, lors de sa seconde partie, il a également combattu sur la “Route 3” 20 rattatas et il en est sorti victorieux à 17 reprises. Quelle instruction doit on faire pour rectifier cet oubli ?
- On donne la fonction suivante:
def le_plus_affronte(partie): pokemon_max, affrontements_max = None, None for (pokemon, (lieu, affrontements, victoires)) in partie.items(): if affrontements_max == None or affrontements > affrontements_max pokemon_max, affrontements_max = pokemon, affrontements return (pokemon_max, affrontements_max)
a) Que va retourner
le_plus_affronte(partie1)
?
b) En vous inspirant de la fonction précédente, écrire une fonctionle_moins_victorieux()
qui admet en paramètre unepartie
et qui retourne le pokemon rencontré par Rémi lors de cette partie avec lequel il a connu le moins de victoires. Le retour attendu sera donné sous la forme d’un tuple désignant le nom de ce pokémon ainsi que le nombre de victoires qui lui est rattaché lors de cette partie.
Jeu de tests:>>> le_moins_victorieux(partie1) ('Mankey', 12) >>> le_moins_victorieux(partie2) ('Zubat', 13)
On désire écire une fonction
nb_affrontements()
qui prend en paramètre la partie et le lieu et qui retourne le nombre d’affrontements qui a eu lieu dans la partie et le lieu choisis.a) Proposer un jeu de tests.
b) Pour réaliser cette fonction, parmi les propositions de boucles ci-dessous laquelle est à privilégier ?
(i)for cle in partie.keys()
(ii)for valeur in partie.values()
(iii)for (cle, valeur) in partie.items()
c) Écrire une fonction qui répond aux critères imposés.
- On désire enfin écire une fonction
nb_victoires()
qui prend en paramètre la partie et un pokemon et qui retourne le nombre d’affrontements qui a eu lieu dans cette partie avec ce pokemon.
Jeu de tests>>> nb_victoires(partie1, 'Cottonee') 20 >>> nb_victoires(partie2, 'Cottonee') 0
a) Pour réaliser cette fonction, parmi les propositions de boucles ci-dessous laquelle est à privilégier ?
(i)for cle in partie.keys()
(ii)for valeur in partie.values()
(iii)for (cle, valeur) in partie.items()
b) Écrire une fonction qui répond aux critères imposés.