💻maths

Les boucles for et while : astuces pour réussir en NSI

13 juin 2026 7 min de lecture

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:
    # instructions

Par 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:
    # instructions

Exemple simple :

compteur = 0
while compteur < 5:
    print(compteur)
    compteur += 1

Attention : 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':
        break

Cette 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 for quand tu connais le nombre d'itérations ou que tu parcours une collection.
  • Utilise while quand 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 += 1

Le 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 False

Cette 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 :

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 !

📚 Pour aller plus loin

Questions fréquentes

Quelle est la différence entre une boucle for et while en Python ?

La boucle for est utilisée quand on connaît le nombre d'itérations ou qu'on parcourt une séquence (liste, chaîne). La boucle while répète tant qu'une condition est vraie, idéale quand le nombre d'itérations est inconnu à l'avance.

Comment éviter une boucle infinie avec while ?

Assure-toi que la condition de la boucle while devient fausse à un moment donné. Pour cela, modifie une variable impliquée dans la condition à chaque itération (ex. incrémenter un compteur). Utilise aussi break pour sortir si nécessaire.

Peut-on utiliser for et while pour la même chose ?

Oui, souvent les deux peuvent résoudre le même problème. Par exemple, pour calculer une somme de 1 à n, on peut utiliser for avec range ou while avec un compteur. En général, for est plus lisible et moins sujet aux erreurs.

Comment parcourir une liste avec son indice en Python ?

Utilise la fonction enumerate : for index, valeur in enumerate(liste):. Cela te donne à la fois l'indice et la valeur sans gérer manuellement un compteur.

Que faire si je dois modifier une liste en la parcourant ?

Évite de modifier une liste pendant une boucle for. Préfère créer une nouvelle liste ou utiliser une boucle while avec un indice que tu contrôles. Par exemple : i = 0; while i < len(liste): if condition: del liste[i]; else: i += 1.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
boucles Python NSIfor while Pythonprogrammation NSIitération Python
Pixel