Quiz d'auto-évaluation
Présentation & objectifs
Les quiz suivants sont là pour vous aider à vérifier que vous avez compris les articles que vous deviez étudier. Ils sont fournis pour l’auto-évaluation et ne seront ni notés ni stockés.
N’hésitez pas à nous contacter sur le serveur Discord pour toute précision/explication !
Quiz
---
shuffle: true
---
# Programmes et langages de programmation
Lesquelles des affirmations sur le langage Python sont fausses ?
- [ ] Python est un langage de programmation procédural.
- [X] Le compilateur Python converti le code source en code exécutable par la machine.
- [ ] Le langage Python permet de créer des classes et de les instancier pour créer des objets.
- [X] Python est un langage de programmation compilé.
# Programmes et langages de programmation
Laquelle des affirmations suivantes décrit le mieux la différence fondamentale entre un langage compilé (par exemple, C++) et un langage interprété (par exemple, Python) ?
- [ ] Les langages compilés sont toujours plus rapides que les langages interprétés.
- [x] Les langages compilés nécessitent une étape de compilation distincte avant leur exécution, tandis que les langages interprétés sont exécutés ligne par ligne par un interpréteur au moment de l'exécution.
- [ ] Les langages interprétés ne peuvent être utilisés que pour le développement web, tandis que les langages compilés sont utilisés pour les logiciels système.
- [ ] Les langages compilés sont indépendants de la plate-forme, tandis que les langages interprétés dépendent de la plate-forme.
# Programmes et langages de programmation
Une équipe de développement lance un nouveau projet visant à créer un moteur de rendu graphique haute performance pour les jeux vidéo. Parmi les critères suivants, lequel est le PLUS important pour choisir le langage de programmation adapté à ce projet ?
- [ ] Langage de programmation doit être celui qui le plus utilisé dans l'entreprise.
- [ ] Le langage doit disposer d'une communauté très importante et active pour assurer son support.
- [ ] Le langage doit être celui que l'équipe de développement souhaite le plus apprendre.
- [X] Le langage doit offrir un contrôle de mémoire de bas niveau et une vitesse d'exécution élevée.
---
shuffle: true
---
# Programmation orientée objet en Python
Quel est l'objectif principal de la méthode `__init__` dans une classe Python ?
- [ ] Elle sert à supprimer un objet et à libérer de la mémoire.
- [x] Il s'agit d'une méthode spéciale qui est automatiquement appelée lorsqu'un nouvel objet est instancié, utilisée pour initialiser ses attributs.
- [ ] Elle sert à convertir l'objet en une représentation sous forme de chaîne.
- [ ] Il s'agit d'une méthode qui doit être appelée manuellement pour créer une instance d'une classe.
# Programmation orientée objet en Python
En POO Python, quel est le rôle du paramètre `self` dans la définition d'une méthode ?
- [ ] Il s'agit d'un mot-clé réservé qui fait référence à la classe parente.
- [ ] Il s'agit d'un espace réservé qui doit être remplacé par le nom de l'objet lors de l'appel de la méthode.
- [x] Il s'agit d'une référence à l'instance actuelle de la classe, utilisée pour accéder aux variables et méthodes appartenant à cet objet.
- [ ] Il s'agit d'un paramètre facultatif qui n'est utilisé que dans certaines méthodes d'une classe.
# Programmation orientée objet en Python
Une classe Python utilise un double trait de soulignement (__) comme préfixe pour un attribut. Quel est l'objectif principal de cette technique ?
- [ ] Rendre l'attribut constant et impossible à modifier.
- [x] Indiquer que l'attribut est destiné à un usage interne uniquement et empêcher tout accès direct accidentel depuis l'extérieur de la classe.
- [ ] Créer automatiquement une méthode pour lire et pour modifier l'attribut.
- [ ] Améliorer les performances du programme en rendant l'attribut privé.
# Programmation orientée objet en Python
Dans le contexte d'une classe Python, quelle est la différence fondamentale entre `self.balance = 10` et `balance = 10` à l'intérieur d'une méthode `def m (self) -> None:` ?
- [ ] `self.balance = 10` crée une variable de classe, tandis que `balance = 10` crée une variable d'instance.
- [ ] `self.balance = 10` crée une variable globale, tandis que `balance = 10` crée une variable locale.
- [x] `self.balance = 10` crée ou met à jour un attribut d'instance, tandis que `balance = 10` crée une variable locale qui est supprimée après l'exécution de la méthode.
- [ ] Il n'y a aucune différence fonctionnelle ; les deux instructions accomplissent la même chose.
# Programmation orientée objet en Python
En Python, une classe `Dog` hérite d'une classe `Animal`. Quel est l'objectif principal de cette relation ?
- [ ] Permettre à la classe `Dog` de masquer complètement tous les attributs et méthodes de la classe `Animal`.
- [x] Permettre à la classe `Dog` de réutiliser et d'étendre les propriétés et les comportements définis dans la classe `Animal`.
- [ ] Empêcher la classe `Animal` d'être instanciée seule.
- [ ] Forcer la classe `Dog` à exécuter immédiatement le constructeur de la classe `Animal` lors de l'importation
# Programmation orientée objet en Python
On veut créer en Python une classe `Dog` comme une sous-classe d'une classe `Animal` existante. Avec quelle ligne de code devrait démarrer la définition de la nouvelle classe ?
- [x] `class Dog(Animal):`
- [ ] `class Animal(Dog):`
- [ ] `class Dog inherits Animal:`
- [ ] Aucune des propositions formulées.