Boucle for

5.2 Boucle for

Objectifs d'apprentissage

À la fin de cette section, vous devriez être en mesure de :

  • Expliquer la structure de la boucle for.
  • Utiliser une boucle for pour exécuter des tâches répétitives.

Boucle for

En Python, un conteneur (container) peut être un intervalle de nombres, une chaîne de caractères ou une liste de valeurs. Pour accéder aux objets situés dans un conteneur, une boucle itérative peut être conçue pour récupérer les objets un par un. Une boucle for (for loop) itère sur tous les éléments d'un conteneur. Ex. : Parcourir la liste d'une classe et afficher le nom des étudiants.

Faites le point

Exemple de boucle for pour itérer sur un objet conteneur

Concepts en pratique

Boucle for sur un conteneur de type chaîne

Une variable chaîne de caractères peut être considérée comme un conteneur de plusieurs caractères et peut donc faire l'objet d'itérations. À partir du code suivant, répondez aux questions.

    str_var = "A string"

    count = 0
    for c in str_var:
      count += 1

    print(count)
1.
Quelle est la sortie du programme ?
  1. 7
  2. 8
  3. 9
2.
Quelle est la sortie du code si la ligne count += 1 est remplacée par count *= 2 ?
  1. 0
  2. 16
  3. 28
3.
Qu'est-ce qui est affiché si le code est modifié comme suit ?
str_var = "A string"

count = 0
for c in str_var:
  count += 1
  # New line
  print(c, end = '*')

print(count)
  1. A string*
  2. A*s*t*r*i*n*g*
  3. A* *s*t*r*i*n*g*

Fonction
Range()
dans une boucle for

Une boucle for peut être utilisée pour l'itération et le comptage. La fonction range() est une approche courante pour implémenter un comptage dans une boucle for. Une fonction range() génère une séquence d'entiers entre deux nombres selon un pas donné. Cette séquence d'entiers inclut le début et exclut la fin de la séquence. La fonction range() peut prendre jusqu'à trois valeurs en entrée. Des exemples sont fournis dans le tableau ci-dessous.

Fonction range Description Exemple Sortie

range(end)

  • Génère une séquence allant de 0 à end exclu.
  • Pas : 1

range(4)

0, 1, 2, 3

range(start, end)

  • Génère une séquence allant de start à end exclu.
  • Pas : 1

range(0, 3)

0, 1, 2

range(2, 6)

2, 3, 4, 5

range(-13, -9)

-13, -12, -11, -10

range(start, end, step)

  • Génère une séquence allant de start à end exclu.
  • Pas : step

range(0, 4, 1)

0, 1, 2, 3

range(1, 7, 2)

1, 3, 5

range(3, -2, -1)

3, 2, 1, 0, -1

range(10, 0, -4)

10, 6, 2

Tableau 5.1 Utilisation de la fonction range().

Exemple 5.2

Deux programmes affichant tous les multiples entiers de 5 inférieurs à 50 (remarquez la concision de la structure
for
par rapport à la structure
while
)

# For loop condition using 
# range() function to print 
# all multiples of 5 less than 50
for i in range(0, 50, 5):
  print(i)
# While loop implementation of printing 
# multiples of 5 less than 50
    
# Initialization
i = 0
# Limiting the range to be less than 50
while i < 50:
    print(i)
    i+=5
Tableau 5.2

Concepts en pratique

Boucle for utilisant la fonction range()

4.
Quels sont les arguments de la fonction range() pour générer la séquence croissante allant de 10 à 22 par pas de 3 (bornes incluses) ?
  1. range(10, 23, 3)
  2. range(10, 22, 3)
  3. range(22, 10, -3)
5.
Quels sont les arguments de la fonction range() pour générer la séquence décroissante de tous les entiers de 5 à 1 (bornes incluses) ?
  1. range(5, 1, 1)
  2. range(5, 1, -1)
  3. range(5, 0, -1)
6.
Quelle est la séquence générée par range(-1, -2, -1) ?
  1. 1
  2. -1, -2
  3. -2
7.
Quelle est la sortie de range(1, 2, -1) ?
  1. 1
  2. 1, 2
  3. séquence vide
8.
Quelle est la sortie de range(5, 2) ?
  1. 0, 2, 4
  2. 2, 3, 4
  3. séquence vide

À vous d'essayer

Compter les espaces

Écrivez un programme utilisant une boucle for qui prend en entrée une chaîne de caractères et compte le nombre d'espaces dans celle-ci. Le programme doit afficher le nombre d'espaces comptés. Ex. : Si l'entrée est "Hi everyone", le programme affiche 1.

À vous d'essayer

Séquences

Écrivez un programme qui lit deux valeurs entières, n1 et n2, avec n1 < n2, et effectue les tâches suivantes :

  1. Afficher tous les nombres pairs entre les deux nombres fournis (les deux inclus), par ordre croissant.
  2. Afficher tous les nombres impairs entre les deux nombres fournis (les deux exclus), par ordre décroissant.
    Input: 2 8
    Prints:
    2 4 6 8
    7 5 3

Remarque : le programme doit renvoyer un message d'erreur si le deuxième nombre est inférieur au premier.