Chapitre 8 : Modularité et API.

Introduction :

Un logiciel comme un jeu vidéo peut compter des centaines de milliers de lignes de code.

Comment découper un programme en morceaux que l'on peut écrire, tester et réutiliser séparément ?

1. Exercice : (sujet 14 - 2025) Lancer de dés et recherche de paires de 6

Dans cet exercice, les tableaux sont représentés par des listes Python (list).

Écrire en Python deux fonctions :

  • lancer(n) de paramètre n, un entier positif, qui renvoie une liste de n entiers obtenus aléatoirement entre 1 et 6 (inclus).
  • paire_6(tab) de paramètre tab, une liste d’entiers entre 1 et 6, qui renvoie True si le nombre de 6 est supérieur ou égal à 2, et False sinon.

On utilisera la fonction randint(a,b) du module random qui renvoie un entier aléatoire N tel que a ≤ N ≤ b.

Exemples :

>>> lancer1 = lancer(5)
>>> lancer1
[5, 6, 6, 2, 2]
>>> paire_6(lancer1)
True

>>> lancer3 = lancer(3)
>>> lancer3
[2, 2, 6]
>>> paire_6(lancer3)
False

>>> lancer4 = lancer(0)
[]
>>> paire_6(lancer4)
False
import random def lancer(n): """Renvoie une liste de n entiers aléatoires entre 1 et 6 inclus.""" ... def paire_6(tab): """Renvoie True si le tableau contient au moins deux fois la valeur 6.""" ... # exemples de test print(lancer(5)) print(paire_6([5,6,6,2,2])) print(paire_6([2,2,6])) print(paire_6([]))

    
>>>

2. Importation de ses modules

Dans Python, nous pouvons construire nos propres bibliothèques et les importer.

3. Exemple

Si nous possédons un fichier mon_programme.py contenant la classe ArbreBinaire, nous pouvons dans un autre fichier utiliser cette classe à l'aide de import mon_programme.

Nous pouvons ensuite l'utiliser avec par exemple arbre=mon_programme.ArbreBinaire("coucou").

4. Exercice : création d'un module structures.py.

  1. Mettre dans un unique fichier que l'on nommera structures.py les classes :

    • File avec :

      • Aucun attribut public.
      • les méthodes :
        • __init__(self)
        • enfiler(self, data)
        • defiler(self)
        • est_vide(self)
    • Pile avec :

      • Aucun attribut public
      • les méthodes :
        • __init__(self)
        • empiler(self, data)
        • depiler(self)
        • est_vide(self)
    • ArbreBinaire avec :

      • les attributs :
        • valeur qui est donné en argument à l'initialisation de l'objet.
        • gauche qui est associé à un None à l'initialisation.
        • gauche qui est associé à un None à l'initialisation.
      • les méthodes :
        • __init__(self,v)
        • ajout_gauche(self,data)
        • ajout_droit(self,data)
        • supprimer_gauche(self)
        • supprimer_droit(self)
  2. Créer dans un second fichier une pile, une file et un arbre après avoir importé le module structures.

5. Les API

Une API (Application Programming Interface) est un ensemble de règles permettant à des programmes de communiquer entre eux. Elle est essentielle pour échanger des données et partager des fonctionnalités entre différentes applications.

6. Rôle et fonctionnement des API

Les API permettent de :

Fonctionnement :

7. Exemple d'utilisation d'une API

Voici un exemple de requête Python à une API :

import requests

url = "https://api.example.com/data"
response = requests.get(url)

if response.status_code == 200:
    print(response.json())
else:
    print("Erreur :", response.status_code)

8. Avantages des API

Les API permettent :

9. Les limites des API

Malgré leurs avantages, les API peuvent être limitées par :

10. Projet API et LLM

Voir la section "projets".