Les structures (boucles et instructions conditionnelles)

Les boucles

Les boucles for

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

  • L’oubli des deux points ":" après la première ligne est une erreur courante.
  • L’oubli de l’indentation de la boucle à répéter est aussi une erreur courante.

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

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

  • L’oubli des deux points ":" après la première ligne est une erreur courante.
  • L’oubli de l’indentation de la boucle à répéter est aussi une erreur courante.
  • Attention une condition jamais réalisée conduira à une boucle sans fin.

Les instructions conditionnelles

Les comparaisons

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

Les tests (Instruction if)

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