Répétez des tâches facilement à l’aide de boucles

Sachez quand utiliser des boucles

En programmation, il y a des ensembles d’instructions qu’il faut répéter plusieurs fois. Par exemple, si vous voulez réaliser une même tâche sur tous les éléments d’une liste. Et si vous avez une liste de campagnes et que vous voulez les afficher toutes ?

Quand vous avez besoin de répéter un ensemble d’instructions, parfois vous savez combien de fois vous allez le répéter, d’autres fois vous ne savez pas. Parfois, le nombre de répétitions n’est pas important, et vous voulez répéter le code jusqu’à ce qu’une certaine condition soit remplie.

Pour tous ces usages, vous allez utiliser des boucles. 

Utilisez la boucle for

La bouclefor est le type de boucle centrale dans Python. Une bouclefor est utilisée pour itérer sur une séquence. Ça peut être une liste, un tuple, un dictionnaire ou même une chaîne de caractères. Avec une bouclefor , vous pouvez exécuter le même code pour chaque élément dans cette séquence. 

Avec Python, c’est très facile de créer des boucles. Si vous voulez afficher tous les éléments dans une liste, le code ressemblera à ça :

races_de_chien = ["golden retriever", "chihuahua", "terrier", "carlin"]
for chien in races_de_chien:
print(chien)

Dans ce code, chaque élément dans   races_de_chien  sera affiché dans le terminal.   chien  est un nom de variable qui se met à jour pour être l’élément suivant à chaque fois que la boucle se répète. Vous pouvez modifier   chien  en   cocorico  et il s’exécutera toujours de la même façon, mais cela n’a pas beaucoup d’intérêt !

Schéma précisant le fonctionnement de la boucle For. Tant que le dernier élément n'est pas atteint, la boucle For renvoie des instructions.
Tant que le dernier élément n'est pas atteint la boucle For renvoie des instructions

Comprenez le fonctionnement de la boucle for

Vous pouvez faire le même genre de boucle  for  si vous voulez passer en boucle chaque caractère d’une chaîne.

Pour boucler un certain nombre de fois, vous pouvez utiliser la fonction  range()  . Elle renverra une séquence de nombres qui vont de 0 à un nombre de fin déterminé.

for x in range(5):
print(x)

Ce code affichera 0, 1, 2, 3, 4 en séquence.

for x in range(100):
print(f"{x} bouteilles de bières au mur !")

Les accolades  {}  ci-dessus prennent n’importe quelle valeur dans la variable   x  et la remplacent (n’oubliez pas le   “f”  au début de la string, qui signifie  format  ). Donc dans cet exemple, le code va afficher :

0 bouteilles de bière au mur !

1 bouteilles de bière au mur !

…

99 bouteilles de bière au mur !

Utilisez la boucle while

La boucle   for  vous permet d’exécuter du code un nombre spécifique de fois, alors que la boucle  while  continue de s’exécuter jusqu’à ce qu’une certaine condition soit remplie.  

Dans le chapitre précédent, vous avez découvert des conditions, ou instructions, qui évaluent si une expression est vraie ou fausse. C’est la même chose ici : le code dans l’instruction   while  s’exécute jusqu’à ce que la condition devienne fausse.

L’extrait de code ci-dessous vérifie la capacité actuelle, et l’augmente d’une unité jusqu’à ce que la capacité maximale soit atteinte (  += 1  augmente la valeur actuelle de 1).

capacite_maximale = 10
capacite_actuelle = 3
while capacite_actuelle < capacite_maximale:
capacite_actuelle += 1

Comme cette   capacite_actuelle  commence à 3, ce code s’exécute 7 fois jusqu’à ce que   capacite_actuelle  atteigne 10.

Tant que le test de l'expression renvoie Vrai, la boucle While renvoie des instructions.
Fonctionnement de la boucle While

Comprenez le fonctionnement de la boucle while

C’est important de connaître les boucles infinies. Si la condition que vous avez réglée est toujours vraie, la boucle va s’exécuter pour toujours !

Par exemple :

x = 0
while x != 5:
x += 2

Dans cette situation, x n’atteindra jamais 5 !

Dans quel cas utilise-t-on généralement une boucle  for  et dans quel cas utilise-t-on une boucle  while  ?

On utilise généralement une boucle  for  lorsqu'on connaît à l'avance le nombre d'itérations à effectuer, et une boucle  while  lorsqu'on ne connaît pas à l'avance le nombre d'itérations à effectuer, et que la boucle doit s'arrêter lorsque la condition spécifiée est satisfaite.

Utilisez les mot-clés break  et continue

Il est courant d'utiliser des boucles pour répéter une série d'instructions plusieurs fois. Parfois, il peut être utile d'interrompre ou de sauter une itération dans la boucle. C'est là que les instructions break  et continue  entrent en jeu.

L'instruction break  permet de sortir d'une boucle prématurément. Elle est souvent utilisée lorsqu'une condition est rencontrée, et que l'on souhaite arrêter la boucle avant qu'elle ne se termine normalement. Voici un exemple :

for i in range(10):
if i == 5:
break
print(i)

Dans cet exemple, la boucle for va itérer de 0 à 9, mais lorsque la valeur de  i   atteint 5, l'instruction  break  est exécutée et la boucle est interrompue. Le programme affichera les valeurs de 0 à 4, mais pas 5, car la boucle a été interrompue grâce au mot-clé  break  .

L'instruction  continue  permet de passer à la prochaine itération de la boucle, sans exécuter le reste du code présent dans la boucle pour l'itération en cours. Elle est souvent utilisée lorsqu'une condition est rencontrée, mais que l'on souhaite continuer la boucle sans exécuter le reste du code.

liste = [1, 2, 3, 4, 5]
# Boucle for sur la liste
for element in liste:
if element == 3:
# Si l'élément vaut 3, on passe à l'itération suivante sans exécuter le reste du code
continue
# Dans tous les autres cas, on exécute le reste du code
print(element)

Si un élément vaut 3, l'instruction  continue  est exécutée, ce qui fait passer directement à l'itération suivante sans exécuter le reste du code présent dans la boucle pour cet élément. Ainsi, la sortie de ce code nous donnera :

1
2
4
5

A vous de jouer 

Contexte

Vous allez maintenant écrire un programme qui calcule différentes statistiques pour un ensemble de nombres fourni par l'utilisateur. Cette tâche vous permettra de réviser les listes et d'aborder la nouvelle notion de ce chapitre : les boucles.

Consignes

  1. Demandez à l'utilisateur de saisir une liste de nombres séparés par des virgules (par exemple : "1,2,3,4").

  2. Stockez cette valeur dans une variable  nombres.nombresest une chaîne de caractères (str).

  3. Utilisez la fonctionsplit(explication de la fonction) pour transformer cette chaîne de caractères en une variable de type liste  liste.listeest une liste de chaîne de caractères.

  4. Transformezlisteen une liste d'entiersliste_entiers, en utilisant la fonction  int. Vous devrez convertir chaque élément un par un ! Utilisez une boucle.

  5. Calculez et affichez la somme des nombres dans la liste.

  6. Calculez et affichez la moyenne des nombres dans la liste.

  7. Calculez et affichez le nombre de nombres dans la liste qui sont supérieurs à la moyenne.

En résumé

  • Les boucles vous permettent de répéter des tâches facilement ou d’exécuter du code pour chaque élément dans une liste.

  • Une boucle  for  permet de répéter du code un certain nombre de fois.

  • Une boucle  while  permet de répéter du code jusqu’à ce qu’une certaine condition soit remplie.

  • L'instruction  break  est utilisée pour interrompre une boucle avant qu'elle ne se termine normalement. 

  • L'instruction  continue  est utilisée pour sauter une itération de boucle et passer à l'itération suivante.

Les boucles sont d’une grande aide pour répéter du code facilement. Pour la suite, nous allons plonger dans les fonctions : une autre façon d’associer des tâches répétitives.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous