Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nsinfo-0.1.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nsinfo-0.1.0-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

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

Hashes for nsinfo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ab2b30a1e93ab8e17e7f62d8d841d0985ba7af6ca80f6a7a02a498294cd384fb
MD5 d912e13fa81ae88604c75bc7c586c82e
BLAKE2b-256 87c2310261cb5d0a7cba581a99100c2011d40cb7162e40625c0807e471821c76

See more details on using hashes here.

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

Hashes for nsinfo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af1ef94af871050c96021da590990746f56a5a7fd57465fb96f8859b4544d1ab
MD5 42930938afcba08dcddba077f27a82a9
BLAKE2b-256 1972c08b10a6631ed95cdcd321c2bc41ee46a1b0eda42a069d6e0c06d2a4896d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page