Cette série vérifie la lecture d’une liste, la construction par boucle, le parcours conditionnel et le débogage. L’objectif n’est pas de réciter du code, mais de prévoir exactement son exécution.
Parcours conseillé
Les cinq exercices forment une progression. Les durées sont indicatives : dépasser le temps n’est pas un échec, mais révèle la méthode à retravailler.
| Ex. | Niveau | Compétence | Temps |
|---|---|---|---|
| 1 | Application | Lire des indices | 5 min |
| 2 | Méthode | Tracer une boucle | 7 min |
| 3 | Programmation | Sommer les positifs | 10 min |
| 4 | Programmation | Compter sans count | 10 min |
| 5 | Débogage | Éviter un dépassement | 8 min |
Exercice 1 — Lire des indices
Niveau : Application · Temps conseillé : 5 min
Soit L = [5, 8, −2, 4]. Donner L[0], L[−1], L[1:3] et la longueur de L.
Afficher le corrigé détaillé
L[0] est le premier élément : 5. L[−1] est le dernier : 4. La tranche L[1:3] commence à l’indice 1 et s’arrête avant l’indice 3 : [8, −2]. Enfin len(L) vaut 4.
Réponse : 5 ; 4 ; [8, −2] ; 4
Contrôle : Les indices commencent à 0 et la borne droite d’une tranche est exclue.
Exercice 2 — Tracer une boucle
Niveau : Méthode · Temps conseillé : 7 min
Quel est le contenu final de L après : L = []; puis, pour k dans range(4), L.append(k**2) ?
Afficher le corrigé détaillé
range(4) produit successivement 0, 1, 2 et 3. À chaque tour, append ajoute le carré en fin de liste : 0, puis 1, puis 4, puis 9. La liste finale est [0, 1, 4, 9].
Réponse : [0, 1, 4, 9]
Contrôle : Faire un tableau avec les colonnes k et L après chaque tour.
Exercice 3 — Sommer les positifs
Niveau : Programmation · Temps conseillé : 10 min
Écrire une fonction somme_positifs(L) qui renvoie la somme des éléments strictement positifs de L.
Afficher le corrigé détaillé
On initialise un accumulateur à 0, puis on ajoute uniquement les valeurs vérifiant x > 0 :
def somme_positifs(L):
s = 0
for x in L:
if x > 0:
s = s + x
return s
Avec [−2, 5, 0, 3], la fonction renvoie 8.
Réponse : 8 pour [−2, 5, 0, 3].
Contrôle : Le return doit être placé après la boucle, sinon la fonction s’arrête trop tôt.
Exercice 4 — Compter sans count
Niveau : Programmation · Temps conseillé : 10 min
Écrire une fonction qui compte les occurrences d’une valeur a dans une liste, sans utiliser la méthode count.
Afficher le corrigé détaillé
On parcourt tous les éléments et on incrémente un compteur lorsqu’un élément est égal à a :
def occurrences(L, a):
n = 0
for x in L:
if x == a:
n += 1
return n
Pour L = [2, 1, 2, 2, 5] et a = 2, le résultat est 3.
Réponse : 3 dans l’exemple.
Contrôle : Tester aussi une valeur absente : le résultat doit être 0.
Exercice 5 — Éviter un dépassement
Niveau : Débogage · Temps conseillé : 8 min
Pourquoi le code « for i in range(len(L)+1): print(L[i]) » provoque-t-il une erreur ? Le corriger.
Afficher le corrigé détaillé
Pour une liste de longueur n, les indices valides vont de 0 à n−1. range(len(L)+1) va jusqu’à n : l’accès L[n] déclenche IndexError. On écrit « for i in range(len(L)): print(L[i]) » ou, plus directement, « for x in L: print(x) ».
Réponse : Retirer +1 ou parcourir les éléments.
Contrôle : Avec une liste de longueur 4, le dernier indice valide est 3.
Tableau de contrôle
Utilisez ce tableau seulement après une tentative complète. Une réponse juste sans justification ne valide pas un exercice de raisonnement.
| Ex. | Résultat attendu | Vérification rapide |
|---|---|---|
| 1 | 5 ; 4 ; [8, −2] ; 4 | Les indices commencent à 0 et la borne droite d’une tranche est exclue. |
| 2 | [0, 1, 4, 9] | Faire un tableau avec les colonnes k et L après chaque tour. |
| 3 | 8 pour [−2, 5, 0, 3]. | Le return doit être placé après la boucle, sinon la fonction s’arrête trop tôt. |
| 4 | 3 dans l’exemple. | Tester aussi une valeur absente : le résultat doit être 0. |
| 5 | Retirer +1 ou parcourir les éléments. | Avec une liste de longueur 4, le dernier indice valide est 3. |
Comment exploiter cette série
Refaites sous 48 heures tout exercice dont la correction vous a surpris. Une semaine plus tard, choisissez deux exercices sans regarder leur numéro ni leur niveau. Si la méthode revient sans aide et si le contrôle confirme le résultat, la compétence est en cours d’acquisition. Sinon, revenez à la leçon puis modifiez les données numériques pour éviter de mémoriser mécaniquement la réponse.





