Les boucles for sont appropriées lorsqu’une opération doit être réalisée un nombre de fois donnée. Le bloc indenté est exécuté pour toutes les valeurs de la ligne d’instruction for.
>>> for i in range(6): # pour i allant de 0 à 5
... print(i) # Afficher i
...
0
1
2
3
4
5
Note
On peut aussi commencer l’incrément à une autre valeur que 0
>>> for i in range(3,10,2): # pour i allant de 3 à 9 par 2
... print(i)
...
3
5
7
9
Les boucles while seront répétées tant que la condition est vraie. Dans l’exemple suivant, on affiche la valeur de i tant que i est inférieur ou égal à 5.
>>> i = 1
>>> while i <= 5:
... print(i)
... i = i + 1
...
1
2
3
4
5
Note
Les comparaisons renvoient un booléen (Pour plus de détails, nous renvoyons le lecteur au chapitre concerné). Nous rappelons simplement ici la syntaxe des tests et des comparaisons.
test | maths | Vrai quand |
---|---|---|
x == y | \(x = y \; ?\) | x est égal à y |
x != y | \(x \neq y \; ?\) | x est différent de y |
x > y | \(x > y \; ?\) | x est strictement supérieur à y |
x < y | \(x < y \; ?\) | x est strictement inférieur à y |
x >= y | \(x\geq y \; ?\) | x est supérieur ou égal à y |
x <= y | \(x \leq y \; ?\) | x est inférieur ou égal à y |
a <= x and x <= b | \(a \leq y \leq b \; ?\) | x est compris entre a et b inclus |
a <= x <= b | \(a \leq y \leq b \; ?\) | x est compris entre a et b inclus |
Une instruction if n’est exécutée que si le test est vrai. Toutes les lignes indentées correspondent au bloc exécuté.
>>> for i in range(10):
... if 4 <= i <= 6:
... print(i)
... print(i**2)
4
16
5
25
6
36
Lorsqu’une instruction doit être exécutée lorsque le test est faux, on utilise en complément l’instruction else
>>> for i in range(10):
... if 4 <= i <= 6:
... print(i)
... else:
... print(u"i n'est pas dans l'intervalle!")
i n'est pas dans l'intervalle!
i n'est pas dans l'intervalle!
i n'est pas dans l'intervalle!
i n'est pas dans l'intervalle!
4
5
6
i n'est pas dans l'intervalle!
i n'est pas dans l'intervalle!
i n'est pas dans l'intervalle!
Un autre exemple pour tester la parité d’un entier
>>> for k in range(5): # Ne pas oublier les ":" # Pour k allant de 0 à 4
... print k # Afficher k
... if (k%2 == 0): # Si le reste de la division entière par 2 est égal à 0 alors
... print "k=%i est pair" %k # Afficher k sous forme d'entier dans la chaîne de caractère
... else: # Sinon
... print "k=%i est impair" %k # Afficher k sous forme d'entier dans la chaîne de caractère
0
k=0 est pair
1
k=1 est impair
2
k=2 est pair
3
k=3 est impair
4
k=4 est pair