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

Intermediate Python

BeginnerSkill Level
4 hr
1.2M learners
Level up your data science skills by creating visualizations using Matplotlib and manipulating DataFrames with 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

cours

Introduction to Python

4 hr
6M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

Voir plusVoir plus