Les boucles font partie des bases incontournables en Python, car elles permettent d’automatiser des tâches répétitives et de traiter des données de manière structurée.
Dès qu’un programme doit parcourir une liste d’éléments, analyser un texte caractère par caractère, ou répéter une action jusqu’à ce qu’une condition soit remplie, la maîtrise du for et du while devient essentielle.
Comprendre ces mécanismes aide à écrire un code plus clair, plus court et surtout plus fiable.
Dans ce contenu, vous allez consolider des notions clés comme l’itération, la gestion des conditions, l’usage de range() pour contrôler un nombre de répétitions, et les bonnes pratiques qui évitent les erreurs classiques (par exemple les boucles qui ne s’arrêtent jamais).
L’objectif est de vous donner des réflexes de programmation solides, utiles en cours, en examen et dans des scripts réels.
Les boucles font partie des bases incontournables en Python, car elles permettent d’automatiser des tâches répétitives et de traiter des données de manière structurée.
Dès qu’un programme doit parcourir une liste d’éléments, analyser un texte caractère par caractère, ou répéter une action jusqu’à ce qu’une condition soit remplie, la maîtrise du for et du while devient essentielle.
Comprendre ces mécanismes aide à écrire un code plus clair, plus court et surtout plus fiable.
Dans ce contenu, vous allez consolider des notions clés comme l’itération, la gestion des conditions, l’usage de range() pour contrôler un nombre de répétitions, et les bonnes pratiques qui évitent les erreurs classiques (par exemple les boucles qui ne s’arrêtent jamais).
L’objectif est de vous donner des réflexes de programmation solides, utiles en cours, en examen et dans des scripts réels.
QCM
1
Corrigé
Quel mot-clé est utilisé pour parcourir les éléments d'une séquence (comme une liste) ?
A. while
B. for
C. loop
D. foreach
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La boucle 'for' en Python est conçue pour itérer sur les éléments de n'importe quel objet itérable.
QCM
2
Corrigé
Quelle fonction génère une suite de nombres souvent utilisée dans une boucle for ?
A. list()
B. sequence()
C. range()
D. numbers()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La fonction range() génère une séquence arithmétique d'entiers, idéale pour contrôler le nombre d'itérations.
QCM
3
Corrigé
Quelle est la condition d'arrêt d'une boucle 'while' ?
A. Tant que la condition testée est fausse
B. Une fois que la liste est terminée
C. Après 10 itérations par défaut
D. Dès que la condition testée devient fausse
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Une boucle 'while' s'exécute tant que sa condition est évaluée à True et s'arrête dès qu'elle passe à False.
QCM
4
Corrigé
Que se passe-t-il si la condition d'une boucle 'while' est toujours vraie ?
A. Le programme s'arrête immédiatement
B. On obtient une boucle infinie
C. Python ignore la boucle
D. Le système d'exploitation redémarre
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Sans modification de la variable de contrôle, le programme répète le bloc sans fin, consommant des ressources.
QCM
5
Corrigé
Quel mot-clé permet de passer immédiatement à l'itération suivante sans finir le bloc actuel ?
A. continue
B. skip
C. break
D. next
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
L'instruction 'continue' interrompt l'étape en cours et relance directement le test de la boucle.
QCM
6
Corrigé
Quel est le résultat de range(5) ?
A. 1, 2, 3, 4, 5
B. 0, 1, 2, 3, 4, 5
C. 0, 1, 2, 3, 4
D. 5, 4, 3, 2, 1
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
range(n) génère n nombres en commençant par 0, la borne supérieure étant exclue.
QCM
7
Corrigé
Quel mot-clé permet d'interrompre prématurément et définitivement une boucle ?
A. stop
B. end
C. exit
D. break
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
L'instruction 'break' sort immédiatement de la boucle, peu importe l'état de la condition.
QCM
8
Corrigé
Combien de fois le code sera-t-il exécuté avec : for i in range(1, 4): ?
A. 4 fois
B. 3 fois
C. 2 fois
D. 1 fois
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les valeurs prises seront 1, 2 et 3. Le nombre final (4) n'est jamais inclus.
QCM
9
Corrigé
Quelle est la syntaxe correcte pour une boucle for ?
A. for i in range(10):
B. for (i=0; i<10; i++):
C. for i to 10:
D. for i in 10
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Python utilise 'in' pour lier une variable à un itérable, suivi des deux-points obligatoires.
QCM
10
Corrigé
Dans une boucle 'while', où doit-on généralement modifier la variable de contrôle ?
A. Au-dessus du 'while'
B. À l'intérieur du bloc indenté de la boucle
C. Sur la même ligne que 'while'
D. Après le mot-clé 'else'
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
L'incrémentation ou la mise à jour doit se faire dans le bloc pour influencer la condition au prochain tour.
QCM
11
Corrigé
Que produit range(0, 10, 2) ?
A. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
B. 0, 2, 4, 6, 8, 10
C. 0, 2, 4, 6, 8
D. 2, 4, 6, 8
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Le troisième paramètre de range() est le 'pas' (step). Ici, on compte de 2 en 2 sans atteindre 10.
QCM
12
Corrigé
Peut-on utiliser une boucle for sur une chaîne de caractères ?
A. Non, c'est réservé aux nombres
B. Oui, pour parcourir chaque caractère
C. Seulement si la chaîne contient des chiffres
D. Seulement avec la fonction len()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Une chaîne est une séquence de caractères ; le 'for' itère sur chaque lettre une par une.
QCM
13
Corrigé
Lequel de ces codes permet de répéter 5 fois 'Bonjour' ?
A. while i < 5: print('Bonjour')
B. for 5 in print('Bonjour'):
C. for i in range(5): print('Bonjour')
D. repeat(5): print('Bonjour')
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
C'est la structure la plus simple et correcte pour une répétition fixe.
QCM
14
Corrigé
Que se passe-t-il si la condition initiale du 'while' est fausse dès le début ?
A. Le code à l'intérieur n'est jamais exécuté
B. Le code est exécuté une seule fois
C. Python affiche une erreur
D. La boucle devient infinie
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Contrairement au 'do-while' d'autres langages, le 'while' Python teste la condition avant la première itération.
QCM
15
Corrigé
Quelle est l'utilité principale d'une boucle imbriquée (une boucle dans une autre) ?
A. Accélérer l'exécution du script
B. Traiter des structures de données complexes comme des tableaux 2D
C. Économiser de l'espace mémoire
D. Remplacer l'instruction if
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les boucles imbriquées sont idéales pour parcourir des grilles, des matrices ou des listes de listes.
QCM
16
Corrigé
Quel est l'effet de : for x in [1, 2, 3]: print(x * 2) ?
A. Affiche 1, 2, 3
B. Affiche 2, 4, 6
C. Affiche 11, 22, 33
D. Génère une erreur de syntaxe
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La boucle multiplie chaque élément de la liste par 2 avant de l'afficher.
QCM
17
Corrigé
Quelle clause optionnelle peut être utilisée après une boucle for ou while en Python ?
A. finally
B. then
C. else
D. catch
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Le bloc 'else' après une boucle s'exécute si la boucle s'est terminée normalement (sans 'break').
QCM
18
Corrigé
Comment parcourir une liste à l'envers avec range() ?
A. range(10, 0, -1)
B. range(0, 10, -1)
C. range(10, 0)
D. reverse_range(10)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Pour décompter, il faut une valeur de début supérieure à la fin et un pas négatif.
QCM
19
Corrigé
Dans 'for fruit in fruits:', que représente 'fruit' ?
A. Le nom obligatoire de la variable
B. Une variable qui prend la valeur de l'élément actuel
C. Le nombre total d'éléments
D. Une fonction interne
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
C'est une variable temporaire choisie par le programmeur pour manipuler l'élément de l'itération en cours.
QCM
20
Corrigé
Lequel de ces opérateurs est souvent utilisé pour mettre à jour un compteur dans un while ?
A. ==
B. is
C. in
D. +=
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
L'opérateur i += 1 est un raccourci pour i = i + 1, essentiel pour éviter les boucles infinies.
QCM
21
Corrigé
Quel est l'équivalent de range(5) ?
A. range(0, 5, 1)
B. range(1, 5, 1)
C. range(5, 0, 1)
D. range(0, 5, 0)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Par défaut, range commence à 0 et utilise un pas de 1 si ces arguments sont omis.
QCM
22
Corrigé
Comment s'appelle l'action de parcourir tous les éléments d'une collection ?
A. L'incrémentation
B. L'itération
C. L'affectation
D. La compilation
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Une itération désigne le passage répété par un bloc de code pour traiter chaque élément d'un ensemble.
QCM
23
Corrigé
Que se passe-t-il si on utilise 'break' dans une boucle imbriquée ?
A. Toutes les boucles s'arrêtent
B. Seule la boucle la plus interne s'arrête
C. Le programme s'arrête complètement
D. Seule la boucle la plus externe s'arrête
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
L'instruction 'break' ne sort que de la boucle dans laquelle elle est directement écrite.
QCM
24
Corrigé
Laquelle de ces affirmations sur 'while True:' est vraie ?
A. C'est une erreur de syntaxe
B. C'est une boucle qui ne s'exécutera jamais
C. C'est une boucle infinie qui nécessite un 'break' interne pour s'arrêter
D. Elle ne peut être utilisée que pour des calculs mathématiques
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
C'est un motif courant pour créer une boucle qui attend un événement spécifique pour s'interrompre via break.
QCM
25
Corrigé
Quel est le risque majeur d'une boucle while basée sur une entrée utilisateur sans validation ?
A. La boucle peut s'arrêter trop tôt
B. Le programme peut planter par manque de mémoire
C. La boucle peut devenir infinie si l'utilisateur ne donne jamais la bonne valeur
D. Python supprimera automatiquement le fichier script
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Si la condition de sortie dépend d'une saisie précise qui n'arrive jamais, le programme reste bloqué.
QCM
26
Corrigé
Comment s'assurer que le code dans une boucle s'arrête après 10 tours même si une condition while est toujours vraie ?
A. En utilisant une variable compteur et 'break'
B. En changeant 'while' en 'if'
C. C'est impossible en Python
D. En supprimant l'indentation
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Ajouter une sécurité avec un compteur manuel permet de garantir l'arrêt du programme.
QCM
27
Corrigé
L'instruction 'continue' est utile pour :
A. Ignorer certains éléments spécifiques d'une liste
B. Accélérer la vitesse de calcul de 50%
C. Définir une nouvelle variable
D. Fermer le terminal
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Elle permet de sauter le reste du bloc de code pour certains cas (ex: ignorer les nombres négatifs).
QCM
28
Corrigé
Quelle est la sortie de : for i in range(2): print(i) ?
A. 0, 1, 2
B. 1, 2
C. 0, 1
D. 2, 1, 0
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
range(2) génère les entiers 0 et 1.
QCM
29
Corrigé
Lequel de ces itérables ne peut pas être utilisé directement dans une boucle for ?
A. Une liste [1, 2]
B. Une chaîne de caractères 'Bonjour'
C. Un nombre entier simple comme 10
D. Un dictionnaire {'a': 1}
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Un entier n'est pas un objet 'itérable'. Il faut utiliser range(10) pour itérer 10 fois.
QCM
30
Corrigé
Pourquoi l'indentation est-elle cruciale dans les boucles ?
A. Pour faire joli
B. Pour séparer les variables des fonctions
C. Elle définit quelles lignes de code appartiennent à la boucle
D. Elle n'est pas nécessaire en Python
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Sans indentation, Python ne sait pas quel code doit être répété et quel code est à l'extérieur de la boucle.
Mots & Définitions
Consultez les définitions des termes importants.
Structure qui permet de parcourir successivement les éléments d’un objet itérable (liste, chaîne, dictionnaire, etc.). Elle est idéale quand on sait « quoi parcourir » et qu’on veut traiter chaque élément de la même façon.
Boucle qui répète un bloc de code tant qu’une condition reste vraie. Elle est surtout utile quand on ne connaît pas à l’avance le nombre de répétitions et que l’arrêt dépend d’un test logique.
Action de répéter un traitement en passant d’un élément au suivant, ou d’un « tour de boucle » au prochain. En programmation, itérer signifie avancer étape par étape selon une règle de parcours.
Objet dont on peut obtenir les éléments un par un, dans un certain ordre. Les listes, chaînes et dictionnaires sont itérables, ce qui permet de les utiliser directement dans une boucle for.
Type d’objet organisé en éléments ordonnés, accessibles souvent par position. Les listes et les chaînes sont des séquences, ce qui facilite leur parcours et certaines opérations répétitives.
Fonction qui produit une suite d’entiers, très pratique pour répéter une action un certain nombre de fois. Elle permet aussi de définir un début, une fin (non incluse) et un pas pour contrôler le rythme.
Principe selon lequel la valeur de fin n’est pas incluse dans la suite générée par range(). Ce détail évite beaucoup d’erreurs de comptage, mais demande une attention particulière au moment de fixer les limites.
Valeur qui indique l’écart entre deux nombres successifs dans range(). Un pas de 2 fait avancer de 2 en 2, et un pas négatif permet de parcourir à rebours.
Expression qui s’évalue en vrai ou faux. Dans un while, c’est cette condition qui décide si la boucle continue ou s’arrête.
Variable qui influence directement la condition d’une boucle, notamment dans un while. En la mettant à jour correctement, on garantit que la boucle progresse et finit par s’arrêter.
Variable qui sert à compter des tours de boucle ou des éléments traités. Il est souvent utilisé comme « sécurité » pour limiter une répétition et éviter qu’un programme tourne indéfiniment.
Situation où une boucle ne s’arrête jamais parce que la condition reste vraie (ou n’est jamais rendue fausse). Elle peut bloquer un programme et consommer inutilement des ressources si elle n’est pas maîtrisée.
Commande qui arrête immédiatement la boucle en cours. Elle est utile quand on a trouvé ce qu’on cherchait ou quand on veut sortir d’une répétition dès qu’un cas particulier apparaît.
Commande qui interrompt le tour de boucle actuel et passe directement au suivant. On l’utilise pour ignorer certains cas sans arrêter toute la boucle.
Décalage (espaces) qui délimite les blocs de code en Python. Elle est essentielle pour indiquer quelles instructions appartiennent à une boucle, à une condition ou à une fonction.
Organisation où une boucle se trouve à l’intérieur d’une autre. C’est une technique fréquente pour traiter des structures en plusieurs dimensions, comme des tableaux ou des listes de listes.
Bloc optionnel qui peut suivre un for ou un while. Il s’exécute lorsque la boucle se termine normalement, ce qui permet de gérer proprement un scénario « terminé sans interruption ».
À propos de ce QCM
Travailler les boucles en Python, ce n’est pas seulement apprendre une syntaxe : c’est apprendre à raisonner sur l’exécution d’un programme.
La boucle for sert principalement à parcourir un objet itérable, comme une liste, une chaîne de caractères ou un dictionnaire.
Elle permet de traiter chaque élément de façon régulière, en gardant un code lisible.
La fonction range() complète parfaitement cette logique lorsqu’on veut répéter une action un certain nombre de fois : elle génère une suite d’entiers contrôlable grâce à un début, une fin (non incluse) et un pas.
Cette idée de borne supérieure exclue peut surprendre au début, mais elle simplifie les parcours et le comptage lorsqu’on la maîtrise.
La boucle while, elle, repose sur une condition booléenne : tant que la condition est vraie, le bloc se répète.
C’est très utile quand le nombre d’itérations dépend d’une situation qui évolue, comme une saisie, un état à atteindre ou une recherche.
Dans ce contexte, la variable de contrôle et le compteur jouent un rôle central : bien les mettre à jour garantit que la boucle progresse et finit par s’arrêter.
C’est aussi là qu’apparaissent les pièges courants, notamment la boucle infinie, qui survient si la condition ne change jamais.
Vous verrez également comment piloter le comportement d’une boucle avec break (sortir immédiatement) et continue (passer au tour suivant), ainsi que l’intérêt des boucles imbriquées pour manipuler des structures plus complexes.
Enfin, l’indentation en Python n’est pas un détail : elle définit précisément les blocs exécutés dans la boucle, ce qui rend votre code correct et compréhensible.
Conclusion
Maîtriser les boucles en Python, c’est gagner en autonomie et en efficacité dès les premiers programmes.
En comprenant quand utiliser for ou while, comment contrôler les répétitions avec range(), et comment sécuriser un arrêt grâce à un compteur, vous évitez les erreurs fréquentes et vous écrivez un code plus propre.
L’entraînement régulier sur ces notions renforce votre logique, améliore votre lecture de code et prépare concrètement aux évaluations et aux situations réelles de développement.
Prenez l’habitude de tester, ajuster, et relire vos conditions : ce sont ces réflexes qui font progresser durablement.