Introduc)on à l'algo. et prog.
en Python
THÈME 8:
BOUCLES FOR
2017 133 / 159
Introduc)on à l'algo. et prog. en Python
No)ons du thème:
• Boucles For
– Sur les structures de données
– Avec range
2017 134 / 159
For et structure de données Introduc)on à l'algo. et prog. en Python
Itéra)on
• Boucle while : la condi)on détermine le
nombre de fois que la boucle est exécutée
boucle condi4onnelle
• Si on connaît ce nombre à l’avance,
on peut u)liser le for…
boucle incondi4onnelle
2017 135 / 159
For et structure de données Introduc)on à l'algo. et prog. en Python
La boucle for
• Permet de parcourir des structures :
Listes de nombres, d’objets, leFres d’un mots
for e in [1, 4, 5, 0, 9, 1] :
print(e)
for e in ["a", "e", "i", "o", "u", "y"]:
print(e)
for e in "python":
print(e) e prend successivement
les valeurs de la liste parcourrue
2017 136 / 159
For et range Introduc)on à l'algo. et prog. en Python
for i in range(1,6) :
1, 2, 3, 4, 5,
print (i,end=",")
• range(deb, fin, pas)
– Fonc)on qui prend des arguments en)ers
– génère une séquence d’en)ers entre [deb, fin[ avec le pas
choisi.
• Les paramètres deb et pas sont op4onnels
range(a) : séquence des en)ers dans [0, a[ , c'est-à-dire dans [0, a-1]
range(b,c) : séquence des valeurs [b, c[, c'est-à-dire dans [b, c-1]
range(e, f, g) : séquence des valeurs [e, f[ avec un pas de g
• for var in range(deb, fin, pas) :
instrucGons
2017 137 / 159
For et range Introduc)on à l'algo. et prog. en Python
A noter
• En cas d’incohérence, la boucle est ignorée et l'on passe
aux instruc)ons suivantes :
for k in range(200, 210, -2) : ignorée
print(k)
for k in range(110,100,-2) :
print(k)
• Quoi qu’il arrive dans le corps de la boucle,
la variable du compteur prend la valeur suivante du
range ou de la liste à chaque nouvelle étape de la boucle
for i in range(1, 5) :
print(i)
i = i*2
2017 138 / 159
For et range Introduc)on à l'algo. et prog. en Python
Exercice
• Pour les cas suivants, indiquer les valeurs successives affichées
sur la console
for i in range(4) : # la liste en arg. doit ne contenir que des nb
print(i) def somme_des_positifs(liste) :
s=0
for j in range(2,5): for e in liste:
print(j) if e>0:
s=s+e
for k in range(3,12,3): return s
print(k)
# prog. principal
for l in range(12, 3): ma_liste = [2,-4,6,0,-5,1]
print(l) for e in ma_liste:
print(e+1)
for m in range(12,3,-2): t=somme_des_positifs(ma_liste)
print(m) print(t)
2017 139 / 159
Introduc)on à l'algo. et prog. en Python
• Ces slides ont été réalisés par:
– Amir Charif
– Lydie Du Bousquet
– Aurélie LagouFe
– Julie Peyre
• Leur contenu est placé sous les termes de la
licence Crea4ve Commons CC BY-NC-SA
2017 159 / 159