1. Les listes et leurs opérations

En classe de Seconde, tu as découvert les listes comme une manière de stocker plusieurs valeurs sous un seul nom. En Première, il s'agit maintenant de savoir les manipuler efficacement : ajouter, retirer et ordonner des éléments. Une liste Python est une collection ordonnée et modifiable (on dit qu'elle est mutable) : on peut la faire évoluer après sa création, sans devoir la recréer entièrement.

Pythonnotes = [12, 14, 9] print(notes) # [12, 14, 9] notes.append(17) # ajoute 17 à la fin de la liste print(notes) # [12, 14, 9, 17] notes.remove(9) # retire la première occurrence de 9 print(notes) # [12, 14, 17] notes.sort() # trie la liste par ordre croissant print(notes) # [12, 14, 17] notes.sort(reverse=True) # trie par ordre décroissant print(notes) # [17, 14, 12]

Quelques rappels utiles pour manipuler une liste au quotidien :

  • len(notes) renvoie le nombre d'éléments de la liste.
  • notes[0] accède au premier élément, notes[-1] au dernier.
  • append(x) ajoute x à la fin ; remove(x) retire la première occurrence de x (erreur si absent) ; sort() trie la liste sur place, sans rien renvoyer.

2. Tuples et dictionnaires

À côté des listes, Python propose deux autres structures de données très employées : le tuple et le dictionnaire. Chacun répond à un besoin précis.

Définitions

Liste [ ] : collection ordonnée et modifiable d'éléments, accessibles par leur position (indice).

Tuple ( ) : collection ordonnée mais non modifiable après sa création — on dit qu'elle est immuable. On l'utilise pour des données qui ne doivent pas changer (coordonnées, jour et mois, etc.).

Dictionnaire { } : collection non ordonnée par position, formée de paires clé : valeur. On accède à une valeur par sa clé, pas par un indice numérique.

Python# Liste : modifiable notes = [12, 14, 9] notes[0] = 15 # autorisé print(notes) # [15, 14, 9] # Tuple : non modifiable coordonnees = (4.32, 15.28) # coordonnees[0] = 5 # ERREUR : TypeError, un tuple ne se modifie pas # Dictionnaire : paires clé:valeur eleve = {"nom": "Aline", "classe": "1ère A", "moyenne": 14.5} print(eleve["nom"]) # Aline eleve["moyenne"] = 15.0 # on peut modifier une valeur existante eleve["age"] = 16 # on peut ajouter une nouvelle paire print(eleve) # {'nom': 'Aline', 'classe': '1ère A', 'moyenne': 15.0, 'age': 16}

3. Fonctions personnalisées avec def

Une fonction est un bloc d'instructions réutilisable, auquel on donne un nom une fois pour toutes. Elle évite de recopier le même code à plusieurs endroits d'un programme et rend celui-ci plus lisible. En Python, on définit une fonction avec le mot-clé def.

Pythondef dire_bonjour(): print("Bonjour et bienvenue !") dire_bonjour() # appelle la fonction dire_bonjour() # on peut l'appeler autant de fois que nécessaire
Exemple

Une fonction qui calcule la moyenne d'une liste de notes :

Pythondef calculer_moyenne(liste_notes): total = sum(liste_notes) moyenne = total / len(liste_notes) print("La moyenne est de", moyenne) calculer_moyenne([12, 15, 9, 18]) # La moyenne est de 13.5

4. Paramètres et valeurs de retour

Une fonction peut recevoir des informations en entrée : ce sont les paramètres, placés entre parenthèses. Elle peut aussi renvoyer un résultat grâce au mot-clé return : c'est la valeur de retour. Une fonction peut avoir plusieurs paramètres, séparés par des virgules.

Pythondef moyenne_ponderee(note1, coef1, note2, coef2): total_points = note1 * coef1 + note2 * coef2 total_coefs = coef1 + coef2 return total_points / total_coefs resultat = moyenne_ponderee(14, 2, 10, 1) print(resultat) # 12.666666666666666
À ne pas confondre

print() dans une fonction se contente d'afficher une valeur à l'écran : le résultat disparaît ensuite, il ne peut pas être réutilisé ailleurs dans le programme. return renvoie une valeur que l'on peut stocker dans une variable et réutiliser plus loin.

Pythondef carre_v1(x): print(x * x) # affiche seulement, ne renvoie rien def carre_v2(x): return x * x # renvoie une valeur utilisable a = carre_v1(5) # affiche 25, mais a vaut None b = carre_v2(5) # b vaut bien 25 print(a, b) # None 25

5. Manipuler des chaînes de caractères

Une chaîne de caractères se comporte, pour beaucoup d'opérations, comme une liste de caractères : on peut en extraire une portion grâce au slicing (découpage), et Python fournit de nombreuses méthodes prêtes à l'emploi pour la transformer.

Pythonmot = "Informatique" print(mot[0]) # I (premier caractère, indice 0) print(mot[0:4]) # Info (du caractère 0 inclus au 4 exclu) print(mot[4:]) # rmatique (du caractère 4 jusqu'à la fin) print(mot[-4:]) # tique (les 4 derniers caractères) print(mot.upper()) # INFORMATIQUE print(mot.lower()) # informatique phrase = " Bonjour Congo " print(phrase.strip()) # "Bonjour Congo" (espaces de début/fin retirés) print(phrase.split()) # ['Bonjour', 'Congo'] print(mot.replace("i", "I")) # InformatIque

6. Lire et écrire des fichiers texte

Un programme a souvent besoin de conserver des données au-delà de son exécution : c'est le rôle des fichiers. Python permet d'ouvrir un fichier avec open(), puis d'y écrire avec write() ou d'y lire avec read(). La syntaxe recommandée est with open(...) as f : elle garantit que le fichier est correctement fermé à la fin, même en cas d'erreur.

Python# Écriture dans un fichier with open("notes.txt", "w") as f: f.write("12\n") f.write("15\n") f.write("9\n") # Lecture d'un fichier, ligne par ligne with open("notes.txt", "r") as f: for ligne in f: print(ligne.strip()) # 12 puis 15 puis 9 # Lecture du fichier entier d'un seul coup with open("notes.txt", "r") as f: contenu = f.read() print(contenu)

Le mode d'ouverture précise ce que l'on souhaite faire : "r" pour lire (read), "w" pour écrire en écrasant le contenu existant (write), "a" pour ajouter à la suite du fichier (append).

7. Importer et utiliser des modules

Un module est un fichier Python qui regroupe des fonctions déjà écrites, prêtes à être réutilisées. Plutôt que de tout reprogrammer, on importe un module avec import et on utilise ses fonctions en les préfixant par le nom du module.

Pythonimport random print(random.randint(1, 20)) # un entier aléatoire entre 1 et 20 inclus import math print(math.sqrt(16)) # 4.0 print(math.pi) # 3.141592653589793 import datetime aujourdhui = datetime.date.today() print(aujourdhui) # affiche la date du jour, ex : 2026-07-22

Le module random fournit des fonctions de hasard, math des fonctions mathématiques, et datetime des outils pour manipuler dates et heures. Il existe des dizaines d'autres modules dans la bibliothèque standard de Python.

8. Gérer les erreurs avec try / except

Certaines instructions peuvent provoquer une erreur à l'exécution : par exemple, convertir en nombre une saisie qui n'en est pas un. Sans précaution, cette erreur arrête brutalement le programme. Le bloc try / except permet d'anticiper ces erreurs et d'y réagir proprement.

Pythontry: age = int(input("Quel est ton âge ? ")) print("Tu as", age, "ans.") except ValueError: print("Erreur : tu dois entrer un nombre entier.")

Si l'utilisateur saisit "seize" au lieu de 16, int() déclenche une erreur de type ValueError ; le programme ne plante pas, il exécute simplement le bloc except et affiche le message d'erreur prévu.

9. Un programme avec interface console interactive

En combinant tout ce qui précède — listes, fonctions, paramètres et retour, chaînes, gestion des erreurs — on peut construire un véritable petit programme interactif, piloté par un menu affiché dans la console et une boucle while qui tourne tant que l'utilisateur ne choisit pas de quitter.

Pythondef calculer_moyenne(notes): if len(notes) == 0: return 0 return sum(notes) / len(notes) notes = [] while True: print("\n--- MENU ---") print("1. Ajouter une note") print("2. Afficher la moyenne") print("3. Quitter") choix = input("Ton choix : ") if choix == "1": try: note = float(input("Entre une note : ")) notes.append(note) print("Note ajoutée !") except ValueError: print("Erreur : entre un nombre valide.") elif choix == "2": print("Moyenne actuelle :", calculer_moyenne(notes)) elif choix == "3": print("Au revoir !") break else: print("Choix invalide, réessaie.")

Ce programme reste actif tant que l'utilisateur ne saisit pas "3" : c'est le rôle de while True associé à l'instruction break, qui interrompt la boucle.

🧠 À retenir

  • Une liste [ ] est ordonnée et modifiable : append() ajoute, remove() retire, sort() trie.
  • Un tuple ( ) est ordonné mais immuable ; un dictionnaire { } associe des valeurs à des clés.
  • Une fonction se définit avec def nom(paramètres): et se déclenche par un appel nom(valeurs).
  • return renvoie une valeur réutilisable ; print() ne fait qu'afficher, sans rien renvoyer.
  • Le slicing chaine[debut:fin] extrait une portion de chaîne ; .upper(), .split(), .strip(), .replace() la transforment.
  • with open("fichier.txt", "r") as f: ouvre un fichier et le referme automatiquement.
  • Un module s'importe avec import ; random, math et datetime sont très utilisés.
  • try / except permet d'anticiper une erreur d'exécution sans faire planter le programme.
1

Une liste de notes à compléter

Facile

On te donne la liste de notes suivante : notes = [11, 13, 9, 16].

  1. Ajoute la note 14 à cette liste.
  2. Trie la liste par ordre croissant.
  3. Calcule et affiche la moyenne de la liste obtenue.
Correction
Pythonnotes = [11, 13, 9, 16] notes.append(14) notes.sort() print(notes) # [9, 11, 13, 14, 16] moyenne = sum(notes) / len(notes) print("Moyenne :", moyenne) # Moyenne : 12.6

append() ajoute la note à la fin, sort() réordonne la liste sur place, et sum() associé à len() permet de calculer la moyenne sans boucle explicite.

2

La fiche d'un élève

Facile

Crée un dictionnaire nommé eleve contenant les informations suivantes : nom, prénom, âge, classe et moyenne. Affiche ensuite une phrase récapitulative construite à partir de ce dictionnaire.

Correction
Pythoneleve = { "nom": "Mbemba", "prenom": "Grace", "age": 16, "classe": "1ère A", "moyenne": 13.8 } print(eleve["prenom"], eleve["nom"], "-", eleve["age"], "ans -", "classe", eleve["classe"], "- moyenne", eleve["moyenne"], "/20") # Grace Mbemba - 16 ans - classe 1ère A - moyenne 13.8 /20

Chaque information est stockée sous une clé explicite ("nom", "age"...), ce qui rend le code plus lisible qu'une liste où l'on devrait retenir la position de chaque donnée.

3

Une fonction moyenne de deux nombres

Moyen

Écris une fonction moyenne_deux(a, b) qui reçoit deux nombres en paramètres et qui renvoie leur moyenne. Appelle cette fonction avec les valeurs 14 et 9, stocke le résultat dans une variable, puis affiche-le.

Correction
Pythondef moyenne_deux(a, b): return (a + b) / 2 resultat = moyenne_deux(14, 9) print(resultat) # 11.5

La fonction utilise return et non print() : le résultat est ainsi disponible dans la variable resultat et pourrait être réutilisé plus loin dans le programme, par exemple dans un autre calcul.

4

La moyenne d'un fichier de notes

Moyen

Un fichier notes.txt contient une note par ligne (par exemple 12, 15 et 9 sur trois lignes). Écris un programme qui lit ce fichier, convertit chaque ligne en nombre, puis calcule et affiche la moyenne de la classe.

Correction
Pythonnotes = [] with open("notes.txt", "r") as f: for ligne in f: notes.append(float(ligne.strip())) moyenne = sum(notes) / len(notes) print("Moyenne de la classe :", moyenne)

ligne.strip() retire le caractère de retour à la ligne présent en fin de chaque ligne lue, avant que float() ne la convertisse en nombre.

5

Mini-programme : carnet de notes interactif

Difficile

Conçois un mini-programme qui affiche un menu en boucle proposant trois choix : « 1. Ajouter une note », « 2. Afficher la moyenne » et « 3. Quitter ». Le programme doit utiliser une fonction pour calculer la moyenne, gérer une saisie invalide avec try / except, et s'arrêter proprement lorsque l'utilisateur choisit de quitter.

Correction
Pythondef calculer_moyenne(notes): if len(notes) == 0: return 0 return sum(notes) / len(notes) notes = [] while True: print("\n--- CARNET DE NOTES ---") print("1. Ajouter une note") print("2. Afficher la moyenne") print("3. Quitter") choix = input("Ton choix : ") if choix == "1": try: note = float(input("Entre une note : ")) notes.append(note) print("Note ajoutée !") except ValueError: print("Erreur : entre un nombre valide.") elif choix == "2": if len(notes) == 0: print("Aucune note enregistrée pour le moment.") else: print("Moyenne actuelle :", calculer_moyenne(notes)) elif choix == "3": print("Programme terminé. Au revoir !") break else: print("Choix invalide, réessaie.")

Ce programme combine une boucle while True, une fonction avec return, une liste modifiée dynamiquement et un bloc try / except pour éviter qu'une saisie incorrecte n'interrompe le programme.

QCM

10 questions · Correction immédiate

0Score
0/10Répondues
Question 1 / 10

Que retourne ce code ?
notes = [12, 15, 9]
notes.append(18)
print(notes)

Question 2 / 10

Que fait l'instruction fruits.remove("banane") si fruits = ["pomme", "banane", "kiwi"] ?

Question 3 / 10

Quelle affirmation est correcte à propos des tuples en Python ?

Question 4 / 10

Que renvoie ce code ?
eleve = {"nom": "Aline", "age": 16}
print(eleve["age"])

Question 5 / 10

Que va afficher ce programme ?
def carre(x):
    return x * x
resultat = carre(4)
print(resultat)

Question 6 / 10

Une fonction utilise print(x * x) au lieu de return x * x. Que se passe-t-il si on écrit a = ma_fonction(5) puis print(a) ?

Question 7 / 10

Que renvoie ce code ?
mot = "Informatique"
print(mot[0:4])

Question 8 / 10

Quelle instruction ouvre correctement un fichier en lecture, en garantissant qu'il sera bien refermé ?

Question 9 / 10

Que renvoie ce code ?
import math
print(math.sqrt(16))

Question 10 / 10

Que va afficher ce programme si l'utilisateur saisit "abc" ?
try:
    n = int(input("Un nombre : "))
except ValueError:
    print("Erreur de saisie")