Fonctions, Modules et POO
1 TP 2 : : Fonctions et Programmation Orientée Objet (POO)
1.1 Objectifs
- Comprendre et appliquer les fonctions en Python.
- Structurer un projet Python en utilisant des modules.
- Découvrir les bases de la programmation orientée objet.
Vous pouvez télécharger le fichier .ipynb en cliquant ici
1.2 Partie 1 : Fonctions
1.2.1 Exercice 1 : Tableau de multiplication
Écrivez une fonction qui affiche le tableau de multiplication d’un entier positif donné.
1.2.2 Exercice 2 : Recherche d’un élément
Écrivez une fonction qui prend en paramètres une liste L
et un élément a
, et qui retourne True
si a
est présent dans la liste, et False
sinon.
1.2.3 Exercice 3 : Multiplication des éléments d’une liste
Écrivez une fonction qui prend une liste L
de nombres et un entier n
en paramètres, puis renvoie une nouvelle liste où chaque élément est multiplié par n
.
1.2.4 Exercice 4 : Position d’un élément
Écrivez une fonction qui prend en paramètres une liste L
et un élément a
, et retourne la position de a
dans la liste. Si l’élément n’est pas présent, renvoyez -1
. N’utilisez pas la fonction index()
.
1.2.5 Exercice 5 : Dictionnaire de parité
Écrivez une fonction qui prend une liste de nombres entiers en paramètre, et renvoie un dictionnaire où les clés sont les nombres et les valeurs indiquent leur parité ('pair'
ou 'impair'
).
1.2.6 Exercice 6 : Comptage des occurrences
Écrivez une fonction qui prend une liste en paramètre et retourne une liste de tuples (élément, occurrence) représentant chaque élément et son nombre d’apparitions dans la liste, sans répétitions.
1.2.7 Exercice 7 : Liste en compréhension
Créez une liste en compréhension qui contient uniquement les carrés des nombres pairs d’une liste donnée.
1.2.8 Exercice 8 : Dictionnaire en compréhension
Créez un dictionnaire en compréhension qui associe chaque élément d’une liste à son carré.
1.3 Partie 2 : Programmation Orientée Objet (POO)
1.3.1 Exercice 9 : Classe Book
- Définissez une classe
Book
avec les attributs :title
,author
etprice
. - Implémentez un constructeur pour initialiser ces attributs.
- Ajoutez une méthode
view()
qui affiche les informations du livre. - Testez la classe en créant plusieurs instances.
1.3.2 Exercice 10 : Classe Polynome
- Implémentez une classe
Polynome
représentant un polynôme du second degré ( P(x) = ax^2 + bx + c ). - Ajoutez les méthodes suivantes :
eval(x)
: calcule la valeur de ( P(x) ) pour une valeur donnée de ( x ).delta()
: calcule le discriminant ( = b^2 - 4ac ).racines()
: calcule les racines du polynôme si elles existent.
1.3.3 Exercice 11 : Classe Domino
- Créez une classe
Domino
avec deux attributs représentant les valeurs des deux parties du domino. - Ajoutez une méthode
affiche_points()
pour afficher les points du domino. - Ajoutez une méthode
valeur()
pour retourner la somme des points. - Testez votre classe en instanciant plusieurs dominos.
1.3.4 Exercice 12 : Récursivité
- Écrivez une fonction récursive pour calculer la somme des éléments d’une liste.
- Implémentez une fonction récursive pour calculer la suite de Fibonacci ( F(n) ).
La suite de Fibonacci est une série de nombres dans laquelle chaque terme est la somme des deux termes précédents. La formule mathématique de cette suite est définie comme suit :
[ F(n) = \[\begin{cases} 0 & \text{si } n = 0, \\ 1 & \text{si } n = 1, \\ F(n-1) + F(n-2) & \text{si } n > 1. \end{cases}\]]
Les premiers termes de la suite
Pour ( n = 0, 1, 2, , 9 ), la suite de Fibonacci est donnée par :
[ F(0) = 0, , F(1) = 1, , F(2) = 1, , F(3) = 2, , F(4) = 3, , F(5) = 5, , F(6) = 8, , F(7) = 13, , F(8) = 21, , F(9) = 34. ]