La boucle for en python
La boucle for en python
-
Objectifs
- Comprendre et savoir utiliser la boucle for dans Python.
- Savoir utiliser les boucles for (imbriquées) et la technique du “drapeau” sous Python
-
Présentation
- Les boucles permettent de répéter une certaine opération autant de fois que nécessaire.
- En Python, on trouve deux types de boucle :
- La boucle for dans laquelle une variable parcourt une collection de valeurs.
- La boucle while qui se répète tant qu’une condition est vraie.
- L’instruction “for” est une structure de contrôle itérative complète permet de répéter l’exécution d’une suite d’instructions un nombre fini de fois connu à l’avance.
- L’instruction “for” travaille sur des séquences. Elle est spécialisées dans le parcours d’une séquence de plusieurs éléments.
- Contrairement à d’autres langages comme le C ou PERL, python n’utilise pas de délimiteurs pour regrouper les lignes. L’indentation, souvent présentée comme un moyen de rendre les programmes plus lisibles, est ici intégrée à la syntaxe du langage. Il n’y a pas non plus de délimiteurs entre deux instructions autre qu’un passage à la ligne.
-
Syntaxe
- Où
var
est un élément de l’ensembleséquence
. Les instructions 1 à n sont exécutées pour chaque élément var de l’ensemble séquence. - Cette séquence peut être une chaîne de caractères, un tuple, une liste, un dictionnaire, un set ou tout autre type.
- Admettons que l’on veuille afficher 5 fois le message “Je suis votre formateur en Python”. Voici ce qu’on peut faire.
-
Les mots clés "break" et "continue"
- Le mot-clé
break
permet tout simplement d’interrompre une boucle. - Permet d’interrompre une boucle.
- Arrête une boucle quelle que soit la condition de celle-ci.
- Utile et fait gagner du temps.
- Mais préférez une boucle avec une condition claire.
- La boucle
while
a pour condition 1, c’est-à-dire une condition qui sera toujours vraie. Autrement dit, en regardant la ligne duwhile
, on pense à une boucle infinie. - Puis, on demande à l’utilisateur de taper une lettre (un ‘Q‘ pour quitter).
- Tant que l’utilisateur ne saisit pas cette lettre, le programme lui redemande de taper une lettre. Quand il tape ‘Q‘, le programme affiche Fin de la boucle et la boucle s’arrête grâce au mot-clé break.
- Permet de continuer une boucle.
- Fait repartir directement à la ligne du while ou for.
- Le mot-clé
continue
permet de. . . continuer une boucle, en repartant directement à la ligne duwhile
oufor
. - Ce qui nous donne:
- Comme vous le voyez, tous les six tours de boucle, i s’incrémente de 4. Arrivé au mot clé
continue
, Python n’exécute pas la fin du bloc mais revient au début de la boucle en testant à nouveau la condition duwhile
. - Autrement dit, quand Python arrive à la ligne 6, il saute à la ligne 2 sans exécuter les lignes 7 et 8.
- Au nouveau tour de boucle,Python reprend l’exécution normale de la boucle (continue n’ignore la fin du bloc que pour le tour de boucle courant).
-
Applications
- Écrire une ligne de commande qui affiche tous les multiples de 7 entre 0 et 70.
- Rédiger un programme factorielle.py qui calcule le nombre n! où n est une variable de type int.
- Écrire un programme voyelles.py qui affiche le nombre de voyelles d’un mot (écrit en minuscule, sans caractère accentué).
- Ce petit programme va nous permettre de voir comment on manipule facilement les chaînes de caractères avec Python.
- Dans la boucle principale, on demande à l’utilisateur de saisir un mot. Le programme affiche alors le nombre de voyelles du mot donné.
-
for var in séquence:
instruction 1
…
instruction n
Tout comme les tests, l’indentation est importante.
t = (1, 2, 3, 4)
for x in t:
print(x)
>>>
1
2
3
4
Activité01:
for i in range(5): """ pour i allant de 0 à 4"""
print("Je suis votre formateur en Python")
break
while 1:
""" 1 est toujours vrai -> boucle infinie"""
lettre = input (" Tapez 'Q' pour quitter : ")
if lettre == "Q":
print ("Fin de la boucle ")
break
continue
i = 1
while i < 40: # Tant que i est inf é rieure à 20
if i % 5 == 0:
print ("Valeur de i devisible sur cinq",i)
i += 4 # On ajoute 4 à i
print ("On incrémente i de 4. i est maintenant é gale à",i)
continue # On retourne au while sans exécuter les autres lignes
print ("La variable i =", i)
i += 1 # Dans le cas classique on ajoute juste 1 à i
for i in range(0,70):
if i%7==0:
print(i)
valeur=int(input("Saisir une valeur de type entier"))
total=1
for i in range(1,valeur+1):
total=int(total)*i
print(total)
print("Pour sortir du programme, saisir lattre q \"q.\n\n")
mot=""
while mot != "Q" :
mot=input("Saisir un mot (sans accent) : ")
# on met toutes les letres en minuscules
mot_min=mot.lower()
# on crée la liste des voyelles
liste_voyelles=("a","e","i","o","u","y")
# on initialise le compteur de voyelles
nb_voyelles = 0
# la boucle de comptage
for lettre in mot_min :
if lettre in liste_voyelles :
nb_voyelles+=1
# l'affichage du résultat
if nb_voyelles == 0 :
print("Il n'y a pas de voyelles dans le mot \"" + mot + "\".\n")
elif nb_voyelles == 1 :
print("Il y a une seule voyelle dans le mot \"" + mot + "\".\n")
else :
print("Le mot \"" + mot + "\" contient " + str(nb_voyelles) + " voyelles.\n")
print("\n\n")
input("Appuyer sur ENTER pour terminer le programme. ")