Accéder au contenu principal

Tutoriel sur les boucles For en Python

Apprenez à mettre en œuvre des boucles For en Python pour itérer une séquence, ou les lignes et les colonnes d'un DataFrame pandas.
Actualisé 14 nov. 2024  · 5 min de lecture

Introduction

Comme dans d'autres langages de programmation, les boucles for en Python sont un peu différentes dans le sens où elles fonctionnent plus comme un itérateur et moins comme un mot-clé for. En Python, il n'y a pas de syntaxe C comme for(i=0; i mais vous utilisez for in n.

Ils peuvent être utilisés pour itérer sur une séquence d'a list, string, tuple, set, array, data frame.

Étant donné une liste d'éléments, la boucle for peut être utilisée pour parcourir chaque élément de cette liste et l'exécuter.

Pour itérer sur une série d'éléments Les boucles For utilisent la fonction range. La fonction range renvoie une nouvelle liste contenant les nombres de l'intervalle spécifié en fonction de la longueur de la séquence.

Lorsque vous itérez sur une séquence, vous pouvez également utiliser l'index des éléments de la séquence pour itérer, mais la clé est d'abord de calculer la longueur de la liste, puis d'itérer sur la série dans l'intervalle de cette longueur.

Les boucles for de Python sont indexées par zéro.

Passons rapidement à la mise en œuvre.

Vous pouvez également regarder cette vidéo pour un tutoriel rapide !

Commencez à apprendre Python gratuitement

Python intermédiaire

BeginnerSkill Level
4
1.1M learners
Mettez à niveau vos compétences en science des données en créant des visualisations à l'aide de Matplotlib et en manipulant des DataFrame avec pandas.
See DetailsRight Arrow

Mise en œuvre des boucles

Pour commencer, imprimons des chiffres allant de 1 à 10. Comme les boucles for de Python sont indexées par zéro, vous devrez en ajouter une à chaque itération ; sinon, le système produira des valeurs comprises entre 0 et 9.

for i in range(10):
    print (i+1)
1
2
3
4
5
6
7
8
9
10

Itérons sur une chaîne de mots Datacamp en utilisant la boucle for et n'imprimons que la lettre a.

for i in "Datacamp":
    if i == 'a':
        print (i)
a
a
a

Supposons que vous souhaitiez définir une liste d'éléments et itérer sur ces éléments un par un.

sequence = [1,2,8,100,200,'datacamp','tutorial']
for i in sequence:
    print (i)
1
2
8
100
200
datacamp
tutorial

Mais que se passe-t-il si vous voulez trouver la longueur de la liste et la parcourir ? Vous utiliserez la fonction intégrée len et appliquerez ensuite la fonction range à la longueur obtenue.

N'oubliez pas que le site range attend toujours une valeur entière.

for i in range(len(sequence)):
    print (sequence[i])
1
2
8
100
200
datacamp
tutorial

Excellent ! Mais pourquoi utiliser la fonction len alors que vous pouvez utiliser directement for i in numbers? La réponse est simple. Et si vous souhaitez modifier ou travailler avec les indices de la séquence, comme changer l'élément d'une liste existante, vous aurez besoin de range(len(sequence)).

for i in range(len(sequence)):
    element = sequence[i]
    if type(element) == int:
        sequence[i] = element + 4
sequence
[5, 6, 12, 104, 204, 'datacamp', 'tutorial']

Cool, n'est-ce pas ? Vous avez pu modifier les éléments de la liste en fonction de la condition if.

Voyons maintenant comment vous pouvez imprimer des nombres impairs compris entre 1 et 20. Pour ce faire, vous devrez définir trois éléments dans la fonction range. Le point de départ, le point d'arrivée et la valeur d'incrémentation (ou les pas) à laquelle la boucle s'incrémentera sur les nombres 1 à 20.

for i in range(1,20,2):
    print (i)
1
3
5
7
9
11
13
15
17
19

Boucle For imbriquée

for i in range(11):
    for j in range(i):
        print (i, end=' ')
    print()
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10

Boucle For pour itérer sur les lignes et les colonnes d'un DataFrame

import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris.head()
  longueur_des_sépales sepal_width longueur_du_pétale petal_width espèces
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
len(iris)
150
for i in range(len(iris)):
    Class = iris.iloc[i,4]
    if Class == 'versicolor' and i < 70:
        print (Class)
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor

Ensuite, ajoutons deux à chaque ligne des colonnes sepal_length,sepal_width, petal_length et petal_width.

columns = ['sepal_length','sepal_width','petal_length','petal_width']
for indices, row in iris.iterrows():
    for column in columns:
        iris.at[indices,column] = row[column] + 2
iris.head()
  longueur_des_sépales sepal_width longueur_du_pétale petal_width espèces
0 7.1 5.5 3.4 2.2 setosa
1 6.9 5.0 3.4 2.2 setosa
2 6.7 5.2 3.3 2.2 setosa
3 6.6 5.1 3.5 2.2 setosa
4 7.0 5.6 3.4 2.2 setosa

Itérer sur une séquence avec une fonction Lambda

La fonction lambda de Python est rapide et puissante par rapport à la boucle de base for. Il est largement utilisé, en particulier lorsqu'il s'agit de DataFrame. Vous pouvez traiter vos données à l'aide de la fonction Lambda avec très peu de code. Cependant, il est parfois difficile de le comprendre.

x = [20, 30, 40, 50, 60]
y = []
for v in x :
    y += [v * 5]
y
[100, 150, 200, 250, 300]

Essayons maintenant avec une fonction lambda et une fonction map.

Map prend en charge une fonction, par exemple une fonction lambda, et une séquence x, puis renvoie une nouvelle séquence.

y = map(lambda x: x * 5,x)
y
<map at 0x11be7cc88>

Il renvoie une fonction de générateur et pour obtenir la sortie du générateur, vous passez la sortie comme argument à list.

list(y)
[100, 150, 200, 250, 300]

Prenons maintenant un peu de recul et examinons à la fois la méthode de la boucle for et la combinaison lambda/map(). Vous remarquerez que la différence entre les deux est l'ajout de map, lambda, et la suppression de "for" et "in". De plus, en une seule ligne, vous avez pu le coder.

Conclusion

Félicitations pour avoir terminé ce tutoriel de base sur la boucle For en Python.

Les boucles For sont l'épine dorsale de tout langage de programmation et lorsqu'il s'agit de Python, l'utilisation des boucles For n'est pas du tout difficile à coder, et elles sont similaires dans l'esprit à l'écriture d'une phrase en anglais.

Si vous souhaitez en savoir plus sur les boucles for en Python, suivez le cours Python Data Science Toolbox (Part 2) de DataCamp.

N'hésitez pas à poser toutes les questions relatives à ce tutoriel dans la section des commentaires ci-dessous.

Sujets

Cours de Python

Certification disponible

cours

Introduction à Python

4 hr
5.5M
Maîtrisez les bases de l'analyse de données avec Python en seulement quatre heures. Ce cours en ligne vous présentera l'interface Python et explorera les packages populaires.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow