Programmation Orientée Objet en Python
  • Back to Main Website
  • Home
  • Introduction: Histoire et Concepts
    • Introduction: Histoire et Concepts
    • Histoire de la programmation
    • Première Structuration des données
    • Naissance de la POO
    • Python: tout n’est qu’objet
    • Python : Simplicité des objets et performance sous-jacente
    • Classes en Python : Concepts fondamentaux

    • Travaux Pratiques
    • Construire sa propre Liste
    • Construire son propre DataFrame
  • Encapsulation, Héritage, Composition et Dunder
    • Encapsulation, Heritage, Composition et Dunder
    • Encapsulation en Python
    • Héritage en Python : Concept et intérêt
    • Héritage vs Composition
    • Méthodes Dunder en Python
    • Python call Method: A Fun Exploration

    • Travaux Pratiques
    • TP: Heritage avec le pricing d’option
    • TP : Ajouter des méthodes dunder à DataFrameSimple
    • TP : Étendre la classe Liste avec des méthodes dunder
    • TP: Dunder Method with Tensor for Automatic Differentiation
  • Polymorphisme et Surcharge
    • Polymorphisme et Surcharge
    • Polymorphism in Object-Oriented Programming
    • Polymorphism in Python: Function Overloading and Type Checking
    • Class Creation: Standard vs type()
    • Type Hinting, Typing Module, and Linters in Python
    • Abstract Classes
    • Protocol Classes

    • Travaux Pratiques
    • TP
  • Decorators
    • Design Patterns
    • The decorator pattern
    • Decorator Practically
    • Built-in Decorators and Standard Library Decorators in Python
    • Practical Decorators in Python Libraries

    • Travaux Pratiques
    • TP: Monte Carlo Option Pricing with Decorators
    • TP: Optimizing Heston Model Monte Carlo Simulation
  • Project Management and Packaging
    • Project and Package
    • Organizing Python Projects
    • Understanding imports
    • Python Package Management and Virtual Environments
    • Unit Testing in Python

    • Travaux Pratiques
    • TP: Creating a Linear Regression Package
  • Design Patterns
    • OOP Design Patterns
    • Python-Specific Design Patterns
    • Creation Design Patterns
    • Structural Design Patterns
    • Behavioral Design Pattern

    • Travaux Pratiques
    • TP
  • Sujets de Projets possibles
    • Projets
    • Projets POO - 2024-2025
  • Code source
  1. Travaux Pratiques
  2. Construire sa propre Liste
  • Introduction: Histoire et Concepts
  • Histoire de la programmation
  • Première Structuration des données
  • Naissance de la POO
  • Python: tout n’est qu’objet
  • Python : Simplicité des objets et performance sous-jacente
  • Classes en Python : Concepts fondamentaux
  • Travaux Pratiques
    • Construire sa propre Liste
    • Construire son propre DataFrame

On this page

  • Instructions
  • Implémentation
  • Tests Unitaires pour vérifier votre implémentation
  1. Travaux Pratiques
  2. Construire sa propre Liste

Construire sa propre Liste

TP
Introduction
Author

Remi Genet

Published

2024-10-21

Instructions

Votre tâche est de créer une classe Liste qui simule les fonctionnalités de base d’une liste en Python. Cette implémentation vous permettra de comprendre comment les listes en Python peuvent contenir des éléments de types différents.

Suivez ces instructions :

  1. Implémentez la classe Liste avec les méthodes suivantes :

    • __init__(self) : Le constructeur qui initialise un dictionnaire vide et un compteur à 0.
    • append(self, element) : Ajoute un élément à la fin de la liste.
    • remove(self, valeur) : Supprime la première occurrence de la valeur donnée.
    • pop(self, index) : Supprime et retourne l’élément à l’index spécifié.
    • get_index(self, valeur) : Retourne l’index de la première occurrence de la valeur donnée.
  2. Votre classe doit avoir les attributs suivants :

    • _elements : Un dictionnaire contenant les éléments de la liste.
    • _count : Un compteur pour garder la trace du nombre d’éléments.
  3. Une fois votre implémentation terminée, exécutez les tests unitaires fournis.

  4. Assurez-vous que tous les tests passent. Si ce n’est pas le cas, revoyez votre implémentation.

Conseils : - Utilisez le dictionnaire _elements pour stocker les éléments, avec les clés étant les indices et les valeurs étant les éléments de la liste. - Mettez à jour le _count chaque fois que vous ajoutez ou supprimez un élément. - Pour remove et get_index, vous devrez parcourir le dictionnaire pour trouver la valeur.

Note : Cette implémentation simple illustre comment les listes en Python peuvent contenir des éléments de types différents. En réalité, les listes Python sont plus optimisées, mais le principe de base est similaire.

Implémentation

Complétez la classe Liste ci-dessous :

Tests Unitaires pour vérifier votre implémentation

Exécutez les tests unitaires ci-dessous pour vérifier votre implémentation :

Exécutez les cellules de code ci-dessus pour implémenter votre classe Liste et vérifier si elle passe tous les tests unitaires. Si certains tests échouent, revoyez votre implémentation et essayez à nouveau.

Cette implémentation vous aidera à comprendre comment les listes en Python peuvent contenir des éléments de types différents, en utilisant un dictionnaire comme structure sous-jacente. C’est une simplification du fonctionnement réel des listes en Python, mais cela illustre le concept de base.

Back to top
Classes en Python : Concepts fondamentaux
Construire son propre DataFrame

Programmation Orienté Object en Python, Rémi Genet.
Licence
Code source disponible sur Github

 

Site construit avec et Quarto
Inspiration pour la mise en forme du site ici
Code source disponible sur GitHub