Exercice 1 sur 8
AssociationAssocie chaque erreur Python à sa cause.

Numérique et sciences informatiques (NSI) · Terminale
22 exercices avec correction détaillée, en 3 séries. Aucune inscription : ta progression reste sur ton appareil.

ULUMINE · Numérique et sciences informatiques (NSI) · Terminale
Feuille d’exercices
Prénom : ……………………………Date : ……………………Score : ……… / 8
Pour chaque programme, demande-toi d’abord : s’exécute-t-il sans erreur ? Si oui, que calcule-t-il vraiment ?
Exercice 1 — Relie chaque élément de gauche à celui de droite.
Associe chaque erreur Python à sa cause.
Exercice 2 — Coche la bonne réponse.
Que se passe-t-il à l’exécution de assert len(L) > 0 si L est une liste vide ?
Exercice 3 — Coche la bonne réponse.
Après l’instruction import math, comment calcule-t-on la racine carrée de 16 ?
Exercice 4 — Coche « Vrai » ou « Faux ».
Une fonction pure peut modifier une variable globale.
VraiFaux
Exercice 5
Quel est le nom de l’erreur levée par ce programme ?
L = [1, 2, 3]
print(L[3])Exercice 6
Cette fonction contient une erreur de logique. Que renvoie moyenne([3, 6, 9]) ?
def moyenne(L):
s = 0
for i in range(1, len(L)):
s = s + L[i]
return s / len(L)Écris tes calculs :
Réponse : ………………
Exercice 7 — Complète les trous.
Complète.
Un fichier Python réutilisable est un . On le charge avec le mot-clé . La chaîne de documentation placée sous l’en-tête d’une fonction s’appelle une .
Exercice 8
Une fonction est_bissextile(a) renvoie True si l’année a est bissextile (divisible par 4 mais pas par 100, ou divisible par 400). Écris un jeu d’au moins quatre tests avec assert et explique pourquoi tu as choisi ces cas.
ulumine.com — exercices corrigés gratuits

ULUMINE · Numérique et sciences informatiques (NSI) · Terminale
Corrigé détaillé — pour les parents et les enseignants
Exercice 1
Réponse : 1 → D · 2 → E · 3 → A · 4 → C · 5 → B
Le nom de l’exception indique la nature du problème : c’est le premier indice pour corriger un programme.
Exercice 2
Réponse : Python lève une AssertionError
La condition len(L) > 0 est fausse : assert interrompt le programme avec une AssertionError. Si elle était vraie, assert ne ferait rien.
Exercice 3
Réponse : math.sqrt(16)
import math rend le module accessible sous le nom math : on préfixe donc ses fonctions par math. Avec from math import sqrt, on écrirait directement sqrt(16).
Exercice 4
Réponse : Faux
Modifier une variable globale est un effet de bord. Une fonction pure ne fait que calculer un résultat à partir de ses paramètres.
Exercice 5
Réponse : IndexError
Les indices valides de L sont 0, 1 et 2. L[3] est hors des bornes : IndexError: list index out of range.
Exercice 6
Réponse : 5
range(1, len(L)) commence à l’indice 1 : le premier élément est oublié. On obtient (6 + 9) / 3 = 5 au lieu de 6.
Exercice 7
Réponse : module · import · docstring
La docstring documente l’API de la fonction ; on la consulte avec help(nom_de_la_fonction).
Exercice 8
Exemple de réponse : assert est_bissextile(2024) (cas courant divisible par 4)
assert not est_bissextile(2023) (non divisible par 4)
assert not est_bissextile(1900) (divisible par 100 mais pas par 400)
assert est_bissextile(2000) (divisible par 400)
Ces cas couvrent chaque branche de la règle, en particulier les deux exceptions liées aux siècles.
Un bon jeu de tests couvre chaque cas de la spécification, et surtout les cas particuliers, là où se cachent les erreurs.
Pour chaque programme, demande-toi d’abord : s’exécute-t-il sans erreur ? Si oui, que calcule-t-il vraiment ?
Associe chaque erreur Python à sa cause.
Que se passe-t-il à l’exécution de assert len(L) > 0 si L est une liste vide ?
Après l’instruction import math, comment calcule-t-on la racine carrée de 16 ?
Une fonction pure peut modifier une variable globale.
Quel est le nom de l’erreur levée par ce programme ?
L = [1, 2, 3]
print(L[3])Cette fonction contient une erreur de logique. Que renvoie moyenne([3, 6, 9]) ?
def moyenne(L):
s = 0
for i in range(1, len(L)):
s = s + L[i]
return s / len(L)Complète.
Une fonction est_bissextile(a) renvoie True si l’année a est bissextile (divisible par 4 mais pas par 100, ou divisible par 400). Écris un jeu d’au moins quatre tests avec assert et explique pourquoi tu as choisi ces cas.
Terminale · Numérique et sciences informatiques (NSI)
Fonctions récursives en Python : cas de base, appels récursifs, pile d’appels, terminaison et comparaison avec l’itératif. Cours et exercices de NSI Terminale.
Terminale · Numérique et sciences informatiques (NSI)
Classes, objets, attributs et méthodes en Python : constructeur __init__, self, interface et références. Cours et exercices de programmation objet en NSI Terminale.
Terminale · Numérique et sciences informatiques (NSI)
Interface et implémentation des structures linéaires : listes chaînées, piles (LIFO), files (FIFO) et dictionnaires en Python. Cours et exercices de NSI Terminale.