La boucle for / else

Inscris-toi

(c'est gratuit !)

Un compte est nécessaire pour participer aux discussions.

Créer un compte

Toutes les questions

Dom

30 novembre 2025

Résolue
1 réponse

Erreur d'indentation dans le résumé

Bonjour, il y a une erreur d'indentation sur la boucle "else" dans le résumé, elle devrait se trouver au même niveau que la boucle "for"

madem

8 mai 2025

Résolue
1 réponse

Clarification sur le quizz et la fonction enumerate

Autre question concernant le quizz sur les boucles cette fois-ci . Il est indiqué que l'objectif ce de quizz (qui est la suite directe de ce module) va notamment permettre de tester notre maitrise de l'utilisation de la fonction `enumerate`. Voir screenshot ci-dessous ![](/media/mentoring/question/36579/enumerate-1876x977.webp) Sauf erreur de ma part, le cours ne nous as pas encore parlé de cette fonction. Est-ce que c'est moi qui ai loupé une partie ou est ce que le quizz porte sur une fonctionnalitée par encore abordée ? Et si jamais y'a un "module/cours" dédié sur la fonction `enumerate`, je suis preneur.

madem

8 mai 2025

Résolue
1 réponse

Utilisation du else avec une boucle while

Le `else` est aussi utilisable en combinaison d'une boucle `while` ?

Lydia

1 septembre 2023

Résolue
1 réponse

Exercice n°6 exercices de code sur les boucles

Bonjour, j'ai une question par rapport à l'exercice n°6 des exercices de code sur les boucles. Le but de cet exercice est de récupérer dans la liste nombres_pairs uniquement les nombres pairs de la liste nombres qui contient les nombres de 0 à 50. Dans la solution, on nous propose d'utiliser l'opérateur modulo puis la méthode append : nombres=range(51) nombres_pairs=[] for i in nombres: if i%2 ==0: nombres_pairs.append(i) Mais on aurait pu faire plus simple en incrémentant i de 2: nombres=range(51) for i in nombres: nombres_pairs=[i] i+=2 print(nombres_pairs) Qu'en pensez vous ?

Moïse Kouman

22 janvier 2023

Résolue
2 réponses

La boucle for / else

Bonjour,j'ai un résultat un peu différent quand j’exécute le code : prenoms = ["Pierre", "Patrick", "Jean", "Marc"] for prenom in prenoms: if prenom == "Patrick": print("Patrick a été trouvé !") break else: print("Patrick est introuvable...") Voici le résultat dans la vidéo : voici le résultat que moi je trouve : ce qui me fait pas bien comprendre cette partie du cours : [Dans quel cas va-t-on passer dans le else ?On passe dans le else si toute la boucle s'exécute c'est-à-dire si on passe à travers tous les éléments de la boucle et qu'on ne rencontre jamais une instruction break.]Dans mon cas toute la boucle s'est pas encore exécutée, quand il trouve la valeur "Pierre" il passe par else et affiche un premier résultat → Patrick est introuvable...et quand il rencontre ensuite "Patrick" il rentre dans le break et sort en affichant →Patrick a été trouvé !. Fin du script Quand aussi j'enlève Patrick de la variable prenoms j'ai trois print de Patrick est introuvable...prenoms = ["Pierre", "Patrick", "Jean", "Marc"] for prenom in prenoms: if prenom == "Patrick": print("Patrick a été trouvé !") break else: print("Patrick est introuvable...") go_kouman@moise-luce:~$ /bin/python3 /home/go_kouman/are/informatiques/docstring/test.py Patrick est introuvable... Patrick est introuvable... Patrick est introuvable...

La boucle for / else

Vous ne le savez peut-être pas, mais il est possible de faire avec Python une boucle for / else.

On retrouve généralement ce else plutôt dans des structures conditionnelles, mais on peut également l'utiliser à l'intérieur d'une boucle.

prenoms = ["Pierre", "Patrick", "Jean", "Marc"]

for prenom in prenoms:
    if prenom == "Patrick":
        print("Patrick a été trouvé !")
        break
    else:
        print("Patrick est introuvable...")

Qu'est-ce qu'on fait dans cet exemple ?

On va chercher à l'intérieur d'une liste si on trouve un élément en particulier, donc si on trouve dans ce cas-ci "Patrick".

Si c'est le cas, on affiche que "Patrick a été trouvé !", et on utilise l'instruction break pour sortir de la boucle.

Dans quel cas va-t-on passer dans le else ?

On passe dans le else si toute la boucle s'exécute c'est-à-dire si on passe à travers tous les éléments de la boucle et qu'on ne rencontre jamais une instruction break.

Dans l'exemple ci-dessus, on itère sur le premier élément, donc "Pierre" n'est pas égal à "Patrick". On continue, et on tombe ensuite sur "Patrick" et on affiche "Patrick a été trouvé !", et ensuite on break, donc on casse la boucle, on ne continue pas avec les autres itérations et on ne passe pas dans le else.

Si par contre on enlève "Patrick" de la liste, on va donc passer à travers les trois itérations de notre boucle ("Pierre", "Jean" et "Marc").

On ne passera pas dans la structure conditionnelle if prenom == "Patrick":. On va donc faire toutes les itérations de la boucle, et on va ainsi passer dans le else et le script affichera "Patrick est introuvable...".

En résumé

La boucle for / else est très pratique quand vous souhaitez chercher à l'intérieur d'une liste et effectuer une action si un élément est trouvé et une autre opération dans le cas où l'élément que vous cherchez n'a pas été trouvé.

Ce n'est pas fini...

Tu as complété % du parcours 🔥

Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.

Rechercher sur le site

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.