Répétition

Lang 03

Durée conseillée: 15 minutes

Activité 1

À retenir

Une condition est une expression qui ne peut être que vraie (True) ou fausse (False). On parle d’expression booléenne.

  1. Ouvrir l’EDI Thonny
  2. Dans la console, exécuter les instructions suivantes:
    À retenir

    Rappel: Le signe »> est l’invite de commandes. L’interpréteur attend une instruction de l’utilisateur.

    Il ne faut pas recopier ce signe.

>>> i = 0
>>> i == 2
>>> i = i + 1
>>> i == 2
>>> i = i + 1
>>> i == 2
>>> i = 0
>>> i == 2
False
>>> i = i + 1
>>> i == 2
False
>>> i = i + 1
>>> i == 2
True
Information
  • = est un opérateur d’affectation. Il permet d’affecter une valeur à une variable (voir activités variables)
>>> i = 0
  • == est un opérateur de comparaison. Il renvoie une valeur booléenne: True ou False.
>>> i == 2
False

Activité 2

Remarque

Pour répéter plusieurs fois une série d’instructions on utilise une boucle.

Information

Pour répéter des instructions un nombre indéterminé de fois, on utilise le mot-clef while. Il s’agit d’une boucle non bornée.

Une boucle non bornée est une fonctionnalité du langage de programmation, qui exécute des instructions tant que l’évaluation de l’expression booléenne renvoie True.

On peut traduire l’algorithme ci-dessous,

tant que mon expression booléenne est vraie alors
    faire quelque chose

par son implémentation en Python:

while mon_expression_booleenne:
    print("Répéter")
  1. Dans Thonny, créer un nouveau document boucle_non_bornee.py.
  2. Écrire le code suivant:
i = 0
while i < 10:
    print("Jusqu'ici tout va bien")
    i = i + 1
print("Le plus dur c'est l'atterrissage.")
À retenir
  • Le mot clef while est immédiatement suivi d’une expression booléenne.
  • Les deux-points : et l’indentation qui suivent sont obligatoires.
  • Si l’expression booléenne renvoie True on rentre dans la boucle.
  • Si l’expression booléenne renvoie False on passe à l’instruction qui suit la boucle
  1. Que se passe-t-il si on modifie le programme tel que?
i = 0
while i < 10:
    print("Jusqu'ici tout va bien")
    i = i + 1
    print("Le plus dur c'est l'atterrissage.")

Toutes les instructions qui sont indentées seront répétées.

  1. Que se passe-t-il si on supprime la ligne?
i = i + 1
i = 0
while i < 10:
    print("Jusqu'ici tout va bien")
    # i = i + 1
print("Le plus dur c'est l'atterrissage.")

La condition est toujours vérifiée: la boucle est répétée infiniment.

Remarque

Dans la console, la combinaison Ctrl + c permet de stopper l’exécution du programme.

Activité 3

À retenir

La construction Python

for variable in séquence

permet d’itérer (de boucler) sur tous les éléments d’une séquence.

C’est une boucle bornée.

À retenir

Une séquence est une liste de valeurs auxquelles on peut accéder une par une.

  • (3, 8, 9, 23) est une séquence d’entiers.
  • “nsi” est une séquence de caractères.
  1. Dans Thonny, ouvrir les onglets Allocations mémoire et Variables.
  2. Exécuter le code en mode débogage; avancer avec F7:
for ma_var in (3, 8, 9, 23):
    print(ma_var)

À chaque itération, la variable ma_var est affectée à la valeur suivante de la séquence.

  1. Exécuter le code en mode débogage; avancer avec F7:
for ma_var in "nsi":
    print(ma_var)

À chaque itération, la variable ma_var est affectée à la valeur suivante de la séquence.

Activité 4

À retenir

Python offre des outils pour faciliter certaines manipulations. La fonction range crée des séquences de nombres entiers.

Documentation

range(start, stop, step)
startOptional. An integer number specifying at which position to start. Default is 0
stopRequired. An integer number specifying at which position to stop (not included).
stepOptional. An integer number specifying the incrementation. Default is 1.
  1. Combien de paramètres minimum sont nécessaires pour la fonction range ?
  2. Comment construire la séquence d’entiers : 0, 1, 2, 3, 4?
Remarque

La séquence de nombres construite n’est pas affichée dans la console. Elle est en attente d’utilisation dans la mémoire.

  • Seul le paramètre stop est obligatoire.
  • L’instruction
range(5)

crée une séquence de 5 éléments, en commençant à 0.

01234
  • L’instruction
range(0, 5)

est équivalente.

  1. Quelles instructions faudrait-il écrire pour créer les séquences d’entiers?
  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 2, 3, 4, 5, 6
  • 1, 3, 5, 7, 9
range(10)
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

range (2, 7)
# 2, 3, 4, 5, 6

range(1, 10, 2)
# 1, 3, 5, 7, 9

Activité 5

À retenir

La fonction range produit des séquences qui peuvent être parcourues dans une boucle.

boucle bornée boucle bornée À chaque tour de boucle, la valeur suivante de la séquence est affectée à la variable i.

  1. Exécuter le programme suivant:
for i in range(5):
    print(i)
Information

Traditionnellement la variable i (j, k,…) est utilisée dans une boucle pour stocker l’entier. Ce n’est pas une obligation. Le code suivant est fonctionnel:

for ma_var in range(5):
    print(ma_var)
  1. Écrire un programme qui affiche :
3
6
9
12
15
for i in range(3, 16, 3):
    print(i)