Révision pour examen 1
Consignes générales
- Sur papier
- Individuel
- Vos avez droit à une feuille de notes format lettre, recto-verso et manuscrite.
- Aucune autre ressource n'est permise.
- Durée : 90 minutes
- Début : 8h10
- Matière:
- Tout ce qui a été vu en classe jusqu'à maintenant, y compris les classes abstraites et les interfaces
- NumPy n'est PAS à l'examen
- L'héritage multiple n'est PAS à l'examen
- Lorsque vous écrivez du code à la main, assurez-vous de respecter la syntaxe
de Python et l'indentation. Un simple oubli d'un deux-points
:
n'est pas grave, mais une syntaxe incorrecte ou une indentation incorrecte le sera. - Si vous ne savez pas quoi répondre à une question, ne restez pas bloqué dessus. Passez à la prochaine question et revenez-y plus tard si vous avez le temps. Après avoir fait les autres questions, tentez de répondre à la question. Il est impossible pour le correcteur de donner ne serait-ce qu'un demi-point pour une question non répondue.
Apprendre de ses erreurs
Réviser le sommatif 1 sauf les questions concernant NumPy.
Programmation fonctionnelle
Exemples de questions
-
Expliquer dans vos mots ce que fait la fonction map. Indiquer notamment ses paramètres et ce qu'elle retourne.
-
Expliquer dans vos mots ce que fait la fonction filter. Indiquer notamment ses paramètres et ce qu'elle retourne.
-
Expliquer dans vos mots ce que fait la fonction reduce. Indiquer notamment ses paramètres et ce qu'elle retourne.
-
Pourquoi un programmeur voudrait utiliser
map
,filter
oureduce
plutôt que des bouclesfor
ouwhile
? -
Que se passe-t-il si on applique
map
sur une liste vide? -
Que se passe-t-il si on applique
filter
sur une liste vide? -
Que se passe-t-il si on applique
reduce
sur une liste vide? -
Qu'est-ce qu'une fonction lambda? Pourquoi est-ce utile?
-
Y a-t-il une différence entre une fonction lambda et une fonction définie avec
def
? Par exemple entref
etg
ci-dessous:f = lambda x: x + 1
def g(x):
return x + 1
Autres concepts
Il va sûrement y avoir des bouts de code à lire et à comprendre, comme par
exemple traduire des boucles for
en map
ou filter
ou reduce
.
Assûrez-vous également de bien comprendre les compréhensions de liste et de
pouvoir les utiliser.
Programmation orientée objet
Exemples de questions
- S'il n'y avait pas de classe en Python, comment feriez-vous pour regrouper des données et des fonctions qui les manipulent? Par rapport à cette méthode, quelles avantages offre la programmation orientée objet?
- Quelle est la différence entre une classe (
class Animal()...
) et une instance de cette classe (chien = Animal()
)? - Quelle est la différence entre le concept de classe abstraite et une interface?
- À quoi servent les méthodes dont le nom commence et se termine par deux
underscores (ex:
__str__
)? - Quelle est l'utilité de la méthode
__init__
? - Quelle est l'utilité de
super()
? - Quelle est la signification du paramètre
self
dans les méthodes de classe? - Peut-on instancier une classe abstraite définie avec le module
abc
? - Qu'est-ce qu'on appelle un constructeur ? Quel est la méthode spéciale en Python qui sert de constructeur?
Autres concepts
Il va sûrement y avoir des bouts de code à lire et à comprendre, comme par exemple des classes à compléter ou des classes à instancier. Assûrez-vous également de bien comprendre l'héritage et la surcharge de méthodes.