Analyse de programme
-
Créez une classe
Voitureavec deux attributs d’instance:couleur, qui stocke la couleur de la voiture sous forme de chaîne de caractèreskilometrage, qui stocke le nombre de kilomètres de la voiture sous forme d’entier.
-
Instanciez deux objets de type
Voiture: une voiture bleue de 20 000 kilomètres et une voiture rouge de 30 000 kilomètres. -
-
Écrire une méthode
affichede la classeVoiture: cette méthode affiche les attributs de la voitureselfcorrespondant. -
Comment utiliser cette méthode pour faire afficher :
La voiture rouge a 20000 kilomètres La voiture bleue a 30000 kilomètres
-
On considère le programme suivant :
1 2 3 4 5 6 7 8 9 10 11 12 | |
- Qu'affiche le programme ?
- Expliquer le résultat.
-
-
Écrire le code d'une classe
Heroqui comporte trois attributs :nom,cri_victoire,cri_defaite(des chaines de caractères),force(un entier compris entre 0 et 100), etpdv(un entier valant 10 par défaut, représentant les points de vie du héro). -
Instancier deux variables de type
Hero:-
hercule, représentant le héros Hercule de force 99, criant "HAN" dans la victoire, mais "Ouch" il est blessé. -
limace, représentant le héros dit "la limace folle" de force 100, criant "GNIII" lorsqu'elle terrasse ses ennemis et "Blup" lorsqu'elle est blessée.
-
-
-
Écrire le code des méthodes
crier_victoireetcrier_defaite(de la classeHero) qui affichent respectivement lecri_victoireet lecri_defaitede l'objetself.1 2 3
def crier_victoire(self): """ Hero -> None""" pass1 2 3
def crier_defaite(self): """ Hero -> None""" pass -
Écrire une méthode
recoit_blessure(de la classeHero) qui prend en argument un entiervalet qui diminue les points de vie du hérosselfde ce montant, puis affiche le cri de défaite du hérosself.1 2
def recoit_blessure(self, val): """ Hero, int -> None """ -
Écrire une méthode
attaquerde la classeHeroqui prent en argument un objetotherde typeHeroet qui simule l'attaque deotherpar le hérosself:-
si la force de
otherest supérieure ou égale à celle deself, alors elle afficheRien ne se passe. -
sinon, elle affiche le cri de victoire de l'objet
selfet inflige 1 point de blessure à l'objetother.1 2
def attaquer(self, other): """ Hero, Hero -> None """
-
-
Qu'affiche le code suivant ?
1 2 3
hercule.attaquer(limace) limace.attaquer(hercule) print(hercule.pdv, limace.pdv)
On considère le code python ci-dessous.
1 2 3 4 5 6 7 8 9 10 11 12 | |
-
Comment créer une instance de la classe
Personneappeléerealpour le réalisateur David Lynch né en 1946 à Missoula ? -
-
Écrire une méthode
__str__de la classePersonnequi de telle sorte quereal.__str__()renvoieDavid Lynch est né(e) en 1946 à Missoula. -
Exécuter l'instruction
print(real). Que constate-t-on ? À quoi sert la méthode__str__?
-
-
-
Quelle instruction python permet de créer une instance de la classe
Filmappeléeflmpour le film Dune, sorti en 1984 et réalisé par David Lynch. -
Qu'affichent les instructions suivantes :
1 2 3
print(flm.titre) print(flm.réalisateur.nom) print(flm.réalisateur) -
Écrire une méthode
__str__de la classeFilmde telle sorte que l'instructionprint(flm)afficheDune a été réalisé par David Lynch originaire de Missoula.
-
On considère la classe Point suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
-
-
Comment instancier une variable
ade typePointqui représente le point \(A(2 ; 4)\) ? -
Quels sont les attributs et les méthodes de cette classe ?
- Donner la signature complète des méthodes
deplaceetsymetriquede la classePoint. -
Qu'affiche le code ci-dessous ? Justifier votre réponse.
1 2 3 4 5 6
b = Point(1, 2) # représente B(1 ; 2) print(b) b.deplace(3, 5) print(b) b.symetrique() print(b)
-
-
-
Écrire une classe
Segmentd'attributsdebutetfin, tous deux de typePoint. Puis, écrire l'instruction python qui permet d'instancier une variables1représentant le segment \([AB]\). -
Écrire une méthode
deplacede la classeSegmentqui prend en entrée deux nombres flottantsdxetdyet qui translate le segmentselfselon le vecteur \(\begin{pmatrix} \texttt{dx} \\ \texttt{dy} \end{pmatrix}\).1 2 3
def deplace(self, dx, dy): """ Segment, float, float -> None """ pass -
Écrire une méthode
symetriquede la classeSegmentqui renvoie le segment symétrique du segmentselfpar rapport à l'origine du repère.1 2 3
def symetrique(self): """ Segment -> Segment """ pass -
La méthode
__str__de la classeSegmentest définie de la manière suivante :1 2
def __str__(self): return f"Segment {self.debut.x, self.debut.y} -- {self.fin.x, self.fin.y}"Quel affichage réalise le code suivant ? Justifier votre réponse.
1 2 3 4 5 6
print(s1) s1.deplace(8, 2) print(s1) s1.symetrique() print(s1) print(a, b)
-
-
-
Définir une classe
Cartequi représente une carte à jouer, définie par sa valeur (de 1 à 13), et sa couleur (pique, cœur, carreau, trèfle). -
Instancier une variable
cde typeCartereprésentant la dame de pique.
-
-
-
Définir une méthode
nomde la classeCartequi renvoie le nom de la carte. Par exemple, pour la cartec, la méthode renverra"Dame de pique". -
Utiliser cette méthode pour afficher dans la console le nom de la carte
c.
-
-
Définir une classe
Paquetqui contient les cartes d'un paquet de 52 cartes. -
-
Définir une méthode
tirerde la classePaquetqui tire au hasard une carte du paquet et qui renvoie son nom. On utilisera la fonctionrandintde la biblithèquerandomqui prend deux argumentsaetbet renvoie un nombre entier aléatoire compris entreaetb(inclus). La carte tirée sera supprimée du paquet une fois tirée. On pourra utiliser l'instructionlst.pop(indice)qui supprime (en renvoyant) l'élément d'indiceindicede la listelst. -
Utiliser cette méthode pour tirer toutes les cartes du paquet dans un ordre aléatoire. On affichera les noms des cartes ainsi tirées.
-