Une bibliothèque Python qui vise à implémenter ce qu'on utilise en NSI (Piles, Files, Graphes, etc.)
Project description
Documentation de nsi_library
Introduction
nsi_library est une bibliothèque Python conçue pour faciliter l'apprentissage et la mise en pratique des concepts enseignés en NSI (Numérique et Sciences Informatiques) au lycée. Cette bibliothèque implémente des structures de données de base (piles, files, graphes) et des algorithmes classiques (tri, recherche, parcours de graphes, etc.).
Installation
Pour utiliser cette bibliothèque après sa publication sur PyPI, exécutez la commande suivante :
pip install nsi_library
Structures de données
Pile
Une pile (LIFO : Last In, First Out) est une structure de données où le dernier élément inséré est le premier à être retiré.
Méthodes
est_vide(): Vérifie si la pile est vide.empiler(element): Ajoute un élément au sommet de la pile.depiler(): Retire et renvoie l'élément au sommet de la pile.sommet(): Renvoie l'élément au sommet de la pile sans le retirer.
Exemple d'utilisation
pile = Pile()
pile.empiler(1)
pile.empiler(2)
print(pile.depiler()) # 2
print(pile.sommet()) # 1
File
Une file (FIFO : First In, First Out) est une structure de données où le premier élément inséré est le premier à être retiré.
Méthodes
est_vide(): Vérifie si la file est vide.enfiler(element): Ajoute un élément à la fin de la file.defiler(): Retire et renvoie le premier élément de la file.
Exemple d'utilisation
file = File()
file.enfiler(1)
file.enfiler(2)
print(file.defiler()) # 1
print(file.defiler()) # 2
Graphe
Un graphe est une structure de données composée de sommets et d'arêtes qui relient ces sommets.
Méthodes
ajouter_sommet(sommet): Ajoute un sommet au graphe.ajouter_arete(sommet1, sommet2): Ajoute une arête entre deux sommets.voisins(sommet): Renvoie la liste des sommets voisins d'un sommet donné.
Exemple d'utilisation
graphe = Graphe()
graphe.ajouter_arete("A", "B")
graphe.ajouter_arete("A", "C")
print(graphe.voisins("A")) # ['B', 'C']
Fonctions
sous_tableau(tableau, debut, fin)
Renvoie une portion d'un tableau entre les indices debut (inclus) et fin (exclu).
Exemple d'utilisation
tableau = [1, 2, 3, 4, 5]
print(sous_tableau(tableau, 1, 4)) # [2, 3, 4]
tri_insertion(tableau)
Trie un tableau en utilisant l'algorithme de tri par insertion.
Exemple d'utilisation
tableau = [5, 3, 2, 4, 1]
print(tri_insertion(tableau)) # [1, 2, 3, 4, 5]
recherche_dichotomique(tableau, valeur)
Recherche une valeur dans un tableau trié en utilisant la méthode dichotomique.
Exemple d'utilisation
tableau = [1, 2, 3, 4, 5]
print(recherche_dichotomique(tableau, 3)) # 2
fibonacci(n)
Calcule le n-ième terme de la suite de Fibonacci (récursivement).
Exemple d'utilisation
print(fibonacci(5)) # 5
factorielle(n)
Calcule la factorielle de n récursivement.
Exemple d'utilisation
print(factorielle(5)) # 120
parcours_profondeur(graphe, sommet)
Effectue un parcours en profondeur sur un graphe à partir d'un sommet donné.
Exemple d'utilisation
graphe = Graphe()
graphe.ajouter_arete("A", "B")
graphe.ajouter_arete("A", "C")
graphe.ajouter_arete("B", "D")
print(parcours_profondeur(graphe, "A")) # {'A', 'B', 'C', 'D'}
parcours_largeur(graphe, sommet)
Effectue un parcours en largeur sur un graphe à partir d'un sommet donné.
Exemple d'utilisation
graphe = Graphe()
graphe.ajouter_arete("A", "B")
graphe.ajouter_arete("A", "C")
graphe.ajouter_arete("B", "D")
print(parcours_largeur(graphe, "A")) # {'A', 'B', 'C', 'D'}
Tests unitaires
Des tests unitaires sont inclus dans le fichier principal pour valider le bon fonctionnement des structures de données et des fonctions.
Contribution
Les contributions sont les bienvenues. Créez une issue ou un pull request sur le dépôt GitHub.
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus d'informations.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nsinfo-0.1.0.tar.gz.
File metadata
- Download URL: nsinfo-0.1.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab2b30a1e93ab8e17e7f62d8d841d0985ba7af6ca80f6a7a02a498294cd384fb
|
|
| MD5 |
d912e13fa81ae88604c75bc7c586c82e
|
|
| BLAKE2b-256 |
87c2310261cb5d0a7cba581a99100c2011d40cb7162e40625c0807e471821c76
|
File details
Details for the file nsinfo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nsinfo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af1ef94af871050c96021da590990746f56a5a7fd57465fb96f8859b4544d1ab
|
|
| MD5 |
42930938afcba08dcddba077f27a82a9
|
|
| BLAKE2b-256 |
1972c08b10a6631ed95cdcd321c2bc41ee46a1b0eda42a069d6e0c06d2a4896d
|