Résolue

La boucle for / else

# Boucles # Structures conditionnelles

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...



Bonjour Moïse !


Le problème vient de ton indentation, tu as mis le else au niveau du if, ta structure est donc un "if / else" classique et non pas une boucle "for / else".


Le code du cours :

for prenom in prenoms:
    if prenom == "Patrick":
        print("Patrick a été trouvé !")
        break
else:  # Le else est au même niveau que le for
print("Patrick est introuvable...")


Ton code :


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

Merci je ferme le sujet,

la leçon pour moi est que la programmation a souvent des petites subtilités

à prendre en compte, faire beaucoup d'attention en regardant ligne par ligne.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

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