Pourquoi les boucles sont-elles essentielles en NSI ?
En NSI, les boucles sont partout : pour parcourir une liste, répéter une action, ou attendre qu'une condition soit vraie. Sans elles, ton code serait long, répétitif et impossible à maintenir. Les deux stars du Python sont for et while. Comprendre leurs différences et savoir les utiliser au bon moment te fera gagner un temps précieux aux épreuves du bac. Dans cet article, on va voir des astuces concrètes pour les maîtriser, avec des exemples testables et des conseils pour éviter les pièges classiques.
Boucle for : l'itération parfaite pour les collections
La boucle for est idéale quand tu connais le nombre d'itérations à l'avance, ou quand tu veux parcourir un élément d'une séquence (liste, chaîne, tuple, etc.). Son fonctionnement est simple : elle prend chaque élément de la séquence l'un après l'autre.
Syntaxe de base
for element in sequence:
# instructionsPar exemple, pour afficher les nombres de 0 à 4 :
for i in range(5):
print(i)Ici, range(5) génère les entiers 0,1,2,3,4. La variable i prend successivement chaque valeur.
Astuce n°1 : utiliser enumerate pour l'indice et la valeur
Quand tu as besoin à la fois de l'indice et de la valeur d'un élément, enumerate est ton allié :
fruits = ["pomme", "banane", "cerise"]
for index, fruit in enumerate(fruits):
print(f"{index} : {fruit}")Résultat : 0 : pomme, 1 : banane, 2 : cerise. Cela évite de gérer un compteur à la main.
Astuce n°2 : parcourir plusieurs listes avec zip
Avec zip, tu peux itérer sur plusieurs séquences en parallèle :
noms = ["Alice", "Bob"]
ages = [20, 22]
for nom, age in zip(noms, ages):
print(f"{nom} a {age} ans")C'est plus élégant que d'utiliser des indices.
Piège à éviter : modifier une liste en la parcourant
Si tu supprimes des éléments d'une liste pendant une boucle for, les indices se décalent et tu risques de sauter des éléments ou d'avoir une erreur. Préfère créer une nouvelle liste ou utiliser une boucle while.
Boucle while : la répétition conditionnelle
La boucle while répète un bloc tant qu'une condition est vraie. Elle est parfaite quand tu ne sais pas à l'avance combien de fois tu dois répéter (ex. : attendre une saisie correcte, algorithme de recherche).
Syntaxe de base
while condition:
# instructionsExemple simple :
compteur = 0
while compteur < 5:
print(compteur)
compteur += 1Attention : si la condition reste toujours vraie, tu obtiens une boucle infinie. Assure-toi de modifier une variable dans la condition.
Astuce n°3 : utiliser break pour sortir prématurément
La commande break permet de quitter la boucle immédiatement, même si la condition est encore vraie. Utile pour les recherches :
while True:
reponse = input("Tape 'q' pour quitter : ")
if reponse == 'q':
breakCette boucle s'arrête dès que l'utilisateur tape 'q'.
Astuce n°4 : utiliser continue pour passer à l'itération suivante
continue ignore le reste du bloc et repart au début de la boucle. Par exemple, pour n'afficher que les nombres pairs :
for i in range(10):
if i % 2 != 0:
continue
print(i)Cela évite des if/else imbriqués.
Quand choisir for ou while ?
En règle générale :
- Utilise
forquand tu connais le nombre d'itérations ou que tu parcours une collection. - Utilise
whilequand la répétition dépend d'une condition qui peut changer pendant l'exécution (ex. : jeu, saisie utilisateur).
Mais parfois les deux peuvent convenir. Par exemple, pour calculer la somme des entiers de 1 à n :
# Avec for
somme = 0
for i in range(1, n+1):
somme += i
# Avec while
somme = 0
i = 1
while i <= n:
somme += i
i += 1Le for est plus concis et moins sujet aux erreurs de compteur. En NSI, privilégie for quand c'est possible.
Cas d'usage concrets pour le bac NSI
Voici deux situations typiques où les boucles sont indispensables :
Recherche d'un élément dans une liste
def trouver(liste, cible):
for element in liste:
if element == cible:
return True
return FalseCette fonction parcourt la liste avec for et s'arrête dès qu'elle trouve l'élément.
Validation de saisie
age = -1
while age < 0 or age > 120:
age = int(input("Entrez un âge entre 0 et 120 : "))La boucle while redemande tant que la saisie est invalide.
Conseils de méthode pour les révisions
Pour t'entraîner efficacement :
- Fais systématiquement un tableau de traçage (trace) pour chaque boucle : note les valeurs des variables à chaque itération. Cela t'aidera à comprendre le déroulement.
- Révise les erreurs courantes : les erreurs Python fréquentes en NSI.
- Consulte le cours complet sur les boucles pour approfondir.
- Entraîne-toi avec des exercices corrigés.
N'hésite pas à utiliser des ressources complémentaires comme AlloBac ou AlloLycée pour réviser autrement.
Conclusion
Les boucles for et while sont des outils puissants. Avec les astuces que tu viens de voir (enumerate, zip, break, continue), tu peux écrire du code plus clair et efficace. N'oublie pas : la pratique est la clé. Lance ton IDE, teste ces exemples, modifie-les, et tu verras que les boucles n'auront plus de secret pour toi. Bonne chance en NSI !
