_2023
Ep 32
ⶠTélécharger le sujet en pdf .
EXERCICE 1
Ăcrire une fonction min_et_max
qui prend en paramĂštre un tableau de nombres tab
non vide, et qui renvoie la plus petite et la plus grande valeur du tableau sous la forme dâun dictionnaire Ă deux clĂ©s min
et max
.
Les tableaux seront représentés sous forme de liste Python.
Lâutilisation des fonctions natives min
, max
et sorted
, ainsi que la méthode sort
nâest pas autorisĂ©e.
Exemples :
đ Script Python >>> min_et_max ([ 0 , 1 , 4 , 2 , - 2 , 9 , 3 , 1 , 7 , 1 ])
{ 'min' : - 2 , 'max' : 9 }
>>> min_et_max ([ 0 , 1 , 2 , 3 ])
{ 'min' : 0 , 'max' : 3 }
>>> min_et_max ([ 3 ])
{ 'min' : 3 , 'max' : 3 }
>>> min_et_max ([ 1 , 3 , 2 , 1 , 3 ])
{ 'min' : 1 , 'max' : 3 }
>>> min_et_max ([ - 1 , - 1 , - 1 , - 1 , - 1 ])
{ 'min' : - 1 , 'max' : - 1 }
RĂ©ponse
Complétez le code ci-dessous
# Mettre votre code icibksl-nlbksl-nl
Solution
def minpy-undetpy-undmax(tab):bksl-nl d = {}bksl-nl d['min'] = tab[0]bksl-nl d['max'] = tab[0]bksl-nl for val in tab:bksl-nl if val < d['min']:bksl-nl d['min'] = valbksl-nl if val > d['max']:bksl-nl d['max'] = valbksl-nl return dbksl-nlbksl-nl
EXERCICE 2
On dispose dâune classe Carte
permettant de créer des objets modélisant des cartes à jouer.
Compléter la classe Paquet_de_cartes
suivante en respectant les spécifications données dans les chaßnes de documentation.
Ajouter une assertion dans la méthode get_carte
afin de vérifier que le paramÚtre pos
est correct.
Exemple :
đ Script Python >>> jeu = Paquet_de_cartes ()
>>> carte1 = jeu . get_carte ( 20 )
>>> print ( carte1 . get_valeur () + " de " + carte1 . get_couleur ())
8 de coeur
>>> carte2 = jeu . get_carte ( 0 )
>>> print ( carte2 . get_valeur () + " de " + carte2 . get_couleur ())
As de pique
>>> carte3 = jeu . get_carte ( 52 )
AssertionError : paramĂštre pas invalide
RĂ©ponse
Complétez le code ci-dessous
class Carte:bksl-nl def py-undpy-undinitpy-undpy-und(self, c, v):bksl-nl """ Initialise les attributs couleur (entre 1 et 4), et valeur (entre 1 et 13). """bksl-nl self.couleur = cbksl-nl self.valeur = vbksl-nlbksl-nl def getpy-undvaleur(self):bksl-nl """ Renvoie la valeur de la carte : As, 2, ..., 10, Valet, Dame, Roi """bksl-nl valeurs = ['As','2', '3', '4', '5', '6', '7', '8', '9', '10', 'Valet', 'Dame', 'Roi']bksl-nl return valeurs[self.valeur - 1]bksl-nlbksl-nl def getpy-undcouleur(self):bksl-nl """ Renvoie la couleur de la carte (parmi pique, coeur, carreau, trÚfle). """bksl-nl couleurs = ['pique', 'coeur', 'carreau', 'trÚfle']bksl-nl return couleurs[self.couleur - 1]bksl-nlbksl-nlclass Paquetpy-unddepy-undcartes:bksl-nl def py-undpy-undinitpy-undpy-und(self):bksl-nl """ Initialise l'attribut contenu avec une liste des 52 objets Carte possiblesbksl-nl rangés par valeurs croissantes en commençant par pique, puis coeur,bksl-nl carreau et tréfle. """bksl-nl # A compléterbksl-nlbksl-nl def getpy-undcarte(self, pos):bksl-nl """ Renvoie la carte qui se trouve à la position pos (entier compris entre 0 et 51). """bksl-nl # A compléterbksl-nlbksl-nl
Solution
class Carte:bksl-nl def py-undpy-undinitpy-undpy-und(self, c, v):bksl-nl """ Initialise les attributs couleur (entre 1 et 4), et valeur (entre 1 et 13). """bksl-nl self.couleur = cbksl-nl self.valeur = vbksl-nlbksl-nl def getpy-undvaleur(self):bksl-nl """ Renvoie la valeur de la carte : As, 2, ..., 10, Valet, Dame, Roi """bksl-nl valeurs = ['As','2', '3', '4', '5', '6', '7', '8', '9', '10', 'Valet', 'Dame', 'Roi']bksl-nl return valeurs[self.valeur - 1]bksl-nlbksl-nl def getpy-undcouleur(self):bksl-nl """ Renvoie la couleur de la carte (parmi pique, coeur, carreau, trÚfle). """bksl-nl couleurs = ['pique', 'coeur', 'carreau', 'trÚfle']bksl-nl return couleurs[self.couleur - 1]bksl-nlbksl-nlclass Paquetpy-unddepy-undcartes:bksl-nl def py-undpy-undinitpy-undpy-und(self):bksl-nl """ Initialise l'attribut contenu avec une liste des 52 objets Carte possiblesbksl-nl rangés par valeurs croissantes en commençant par pique, puis coeur,bksl-nl carreau et tréfle. """bksl-nl self.contenu = [Carte(c, v) for c in range(1, 5) for v in range(1, 14)] bksl-nlbksl-nl def getpy-undcarte(self, pos):bksl-nl """ Renvoie la carte qui se trouve à la position pos (entier compris entre 0 et 51). """bksl-nl assert 0 <= pos <= 51, 'paramÚtre pos invalide'bksl-nl return self.contenu[pos]bksl-nlbksl-nl