breyting /
lepec
Projet de logiciel éducatif python en classe
Loading repository data…
LalaOulala / repository
Projet éducatif en Python pour comprendre et manipuler les listes chaînées : structures internes, pointeurs, insertion/suppression et cas d’utilisation.
Petit TP d’initiation aux structures de données, dont l’objectif est d’implémenter une liste chaînée simple en Python et quelques opérations de base dessus.
listes.py
Cell : représente un maillon (valeur + pointeur vers le suivant) ;Liste : implémente une liste chaînée simple avec, entre autres :
is_empty_list, length, __str__ ;insert_first, insert_last, insert_at (insertion en tête / fin / position i) ;delete_value (suppression d’une valeur) ;get_at, get_value (accès à un maillon / à sa valeur) ;map, count, filter, reduce (opérations de type fonctionnel sur la liste).incr, carre, test_negative, f).listes_tests.py
Script simple qui crée des listes de test et affiche le résultat de chaque méthode pour vérifier le bon fonctionnement de l’implémentation.
TP5-listes (1).pdf
Énoncé du TP (description détaillée des fonctions à coder et des questions théoriques).
map, filter, reduce.current = self.mfirst.while current is not None: pour avancer sans risque de déréférencer None.for range(self.size) est possible mais moins souple : il force à gérer les accès aux pointeurs et ne protège pas naturellement des tailles incohérentes.insert_first) : créer une nouvelle Cell, pointer son next vers l’ancienne tête, puis déplacer mfirst sur elle, incrémenter size.insert_at) : vérifier l’indice (assert 0 <= i <= size), cas i == 0 délégué à insert_first, sinon avancer i-1 fois puis insérer en rechaînant next.insert_last) : se repose sur insert_at avec l’indice length() pour éviter de réécrire la logique.delete_value)prev (maillon précédent) et current (maillon candidat à supprimer).mfirst.data == v, déplacer mfirst sur mfirst.next, décrémenter size.v. Quand trouvé, “sauter” le maillon : prev.next = current.next. Le maillon n’est plus référencé, donc “déconnecté”.get_at/get_value : vérifier l’indice (assert 0 <= i < size), partir de mfirst, avancer i fois avec un while, renvoyer la cellule ou sa donnée.NoneType inattendus.map : parcourt avec while, applique f à chaque valeur et insère dans une nouvelle liste via insert_last.filter : pour chaque élément, évalue result = f(data), vérifie que le retour est bien un booléen (assert type(result) == bool), puis conserve l’élément si result est vrai.count : parcours simple, incrémente un compteur quand data == v.reduce (à compléter dans le TP) : applique une fonction binaire cumulée sur tous les éléments en partant d’une valeur initiale.while current is not None ?Depuis ce dossier, lancer les tests “maison” avec :
python3 listes_tests.py
Le script affiche dans le terminal les différentes listes et valeurs renvoyées par les méthodes de Liste, ce qui permet de vérifier au fur et à mesure que chaque fonction est correctement codée.
Selected from shared topics, language and repository description—not editorial ratings.
breyting /
Projet de logiciel éducatif python en classe
saphirbleu /
Projets educatifs pour tester ses connaissaces en python, sqlite3
Tarikalaoui1 /
Projet éducatif en Python simulant une attaque par dictionnaire sur des mots de passe hashés (MD5/SHA-256). Réalisé dans le cadre de ma formation en Infrastructure Digitale.
AxLDvL /
projet éducatif d'un casino en python
netdevsentinel /
Détecteur de bruteforce local éducatif en Python
TimothieGeulin /
Projet en Python de M1-S1 en Génie Logiciel. Jeu éducatif pour l'apprentissage de la logique.