Boucle for : Une fonction essentielle de la programmation

-
4
 m de lecture
-
boucle for

Qu'est ce qu'une "boucle for" ?

En programmation, on parle d’itérables pour désigner des objets regroupant une collection d’objets qu’on peut parcourir. Parmi les itérables on compte entre autres : les listes, les tuples, les dictionnaires ou les strings…

Les boucles for permettent de parcourir des itérables et de répéter une suite d’instructions pour chaque élément. Le code à exécuter est alors répété autant de fois que le nombre d’éléments que contient notre itérable. En tant qu’essentiel de la programmation, les boucles for sont utilisées dans tous les métiers de la data : data analyst, data scientist ou encore data engineer.

Dans cet article, nous verrons comment utiliser l’instruction “for” sur différents types d’objets et en quoi les boucles for permettent de répondre au célèbre adage de programmation « Don’t Repeat Yourself ».

Pour nous familiariser avec l’utilisation des boucles nous allons d’abord apprendre à les utiliser sur des éléments de type liste.

Utiliser une boucle pour itérer sur une liste avec l’instruction "For"

Nous allons créer une boucle for pour récupérer le prénom de chaque élève dans une variable « students » de type liste, qui est composée du prénom et du nom des élèves. Puis, nous ajoutons les prénoms à la liste « first_names ».

Utiliser Range pour itérer :

La fonction range nous permet d’itérer sur une suite de nombres définis sur un certain intervalle. Ci-dessous, nous affichons la valeur de chaque nombre entier dans l’intervalle [0, 5[ (on note que 0 est inclus mais 5 est exclu).

Par défaut, la fonction range prend 0 en valeur de départ, mais il est également possible de changer la valeur de départ.

La fonction range permet également de changer le pas (ou step en anglais) entre chaque chaque valeur sur l’intervalle :

Grâce à la fonction range, il est également possible d’itérer dans le sens inverse en prenant un pas négatif :

Utiliser des itérations imbriquées

Une boucle imbriquée ou (nested iteration) est une boucle située à l’intérieur d’une autre boucle. La boucle imbriquée sera exécutée pour chaque itération de la boucle située au-dessus.

Dans l’exemple ci-dessous, nous itérons sur chaque prénom de la liste « first_names » qui est de type string. Puis grâce à une boucle imbriquée, nous itérons sur chaque lettre du prénom et affichons la lettre, son numéro, et le numéro du prénom à laquelle la lettre appartient.

Plutôt que d’initier un compteur à la main, nous pouvons utiliser range pour itérer sur le nombre d’éléments compris dans notre itérable :

Utiliser enumerate pour bénéficier d’un compteur d’éléments automatique

Python dispose de la fonction enumerate() qui retourne pour chaque itération, un tuple contenant l’indice et la valeur de l’itérable à cet indice.

On notera que la sortie des trois derniers exemples est la même mais que le code des deux dernières solutions est plus optimisé.

Itérer sur plusieurs itérables en même temps avec Zip

Il est possible d’utiliser la fonction intégrée zip() pour itérer dans plusieurs itérables en même temps. Pour chaque itération, zip retourne un tuple qui rassemble les éléments situés à la même position de chacun des itérables.

Grâce à la boucle for et à zip, nous pouvons ici créer une liste « names » composée du prénom et du nom de chaque étudiant.

Sortir d’une boucle avec l’instruction Break

Il est possible de quitter une boucle si une condition particulière est rencontrée en utilisant « break ». Tant que la condition n’est pas vérifiée, la boucle est exécutée normalement. Dès que la condition est vraie, le programme sort de la boucle et passe à l’instruction après celle-ci.

Une expression logique est utilisée pour vérifier la condition. Par exemple, ci-dessus, nous quittons la boucle si le type d’un élément de la liste n’est pas de type string. La boucle a été quittée avant d’afficher l’élément à l’index 2, qui est de type int et non string.

Passer à l’itération suivante en sautant l’itération actuelle avec l’instruction continue

Il est possible de sauter l’itération dans laquelle on est si une condition particulière est rencontrée en utilisant l’instruction de python « continue ». Si la condition est vraie, le programme restera dans la boucle mais passera directement à l’itération suivante.

Nous voyons ci-dessus que la boucle a été exécutée sauf à l’index n°2 où le type de l’élément est int.

List Comprehensions

Pour simplifier l’écriture des boucles for sur des listes, il est possible de passer par les List Comprehensions qui permettent, entre autres, de faciliter la déclaration ou la modification de variables de type liste.

Il est également possible d’utiliser des List Comprehensions imbriquées, afin de créer des listes à plusieurs dimensions.

Le code précédemment fait en 1 ligne ce que le code ci-dessous fait en 6 lignes.
Nous venons de voir plusieurs utilisations des boucles for sur des listes (et également des strings). Dans la suite de cet article, nous verrons comment itérer sur d’autres types type d’objets.

Itérer sur un dictionnaire

Il est possible de répéter une instruction sur un dictionnaire grâce à la méthode .items().

Python permet également l’utilisation de compréhensions sur des dictionnaires appelés Dict Comprehensions :

Itérer sur un Numpy Array

Il est possible d’itérer sur les différentes dimensions d’un Numpy array grâce à des boucles for :

Grâce à la fonction nditer et une boucle, il est également possible d’accéder directement à chaque élément contenu dans notre array Numpy.

Itérer sur un dataframe Pandas

Pour itérer sur chaque ligne d’un dataframe Pandas, il est possible d’utiliser iterrows.

Quelques mots pour conclure

Au cours de cet article, nous avons vu que les boucles for nous permettent de gagner un temps précieux et d’optimiser notre code. Nous avons vu comment les utiliser, d’un niveau basique à avancé. Pour prendre en main cet incontournable de la programmation, n’hésitez pas à pratiquer et à les utiliser sur différents types d’objets. Les boucles for sont en effet utilisées dans tous les métiers de la data. Si vous envisagez de vous former à un de ces métiers, n’hésitez pas à consulter nos différents cursus.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?