Boucle for en Python
La boucle for en Python est une fonction d'itération. Si vous avez un objet de séquence comme une liste, vous pouvez utiliser la boucle for pour parcourir les éléments contenus dans la liste.
La fonctionnalité de la boucle for n'est pas très différente de ce que vous voyez dans plusieurs autres langages de programmation.
Dans cet article, nous explorerons en détail la boucle for en Python et apprendrons à itérer sur différentes séquences, y compris les listes, les tuples, et plus encore. De plus, nous apprendrons à contrôler le flux de la boucle en utilisant les instructions break et continue.
Quand utiliser la boucle for
Chaque fois que vous avez besoin de répéter un bloc de code un nombre fixe de fois. Si vous ne connaissez pas le nombre de fois qu'il doit être répété, utilisez plutôt une instruction de type « boucle while ».
Syntaxe de la boucle For en Python
La syntaxe de base de la boucle for en Python ressemble à celle mentionnée ci-dessous.
for itarator_variable in sequence_name:
Statements
. . .
Statements
Syntaxe de la boucle for en Python dans le détail
- Le premier mot de l'énoncé commence par le mot-clé “pour” qui signifie le début de la boucle for.
- Ensuite, nous avons la variable d'itération qui itère sur la séquence et peut être utilisée à l'intérieur de la boucle pour effectuer diverses fonctions.
- Le suivant est le “in ” mot-clé en Python qui indique à la variable d'itération de boucler sur les éléments de la séquence.
- Et enfin, nous avons la variable de séquence qui peut être soit une liste, un tuple, ou tout autre type d'itérateur.
- La partie des déclarations de la boucle est l'endroit où vous pouvez manipuler la variable d'itération et effectuer diverses fonctions.
Imprimez les lettres individuelles d'une chaîne en utilisant la boucle for
Une chaîne Python est une séquence de caractères. Si dans l'une de vos applications de programmation, vous devez parcourir les caractères d'une chaîne individuellement, vous pouvez utiliser la boucle for ici.
Voici comment cela fonctionnerait pour vous.
word="anaconda"
for letter in word:
print (letter)
Sortie:
a
n
a
c
o
n
d
a
La raison pour laquelle cette boucle fonctionne est que Python considère une « chaîne » comme une séquence de caractères plutôt que de voir la chaîne dans son ensemble.
Utiliser la boucle for pour itérer sur une liste ou un tuple Python
Les listes et les tuples sont des objets itérables. Voyons comment nous pouvons parcourir les éléments de ces objets maintenant.
words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
print (word)
Sortie:
Apple
Banana
Car
Dolphin
Maintenant, avançons et travaillons sur le fait de boucler sur les éléments d'un tuple ici.
nums = (1, 2, 3, 4)
sum_nums = 0
for num in nums:
sum_nums = sum_nums + num
print(f'Sum of numbers is {sum_nums}')
Output
Sum of numbers is 10
Boucles for imbriquées en Python
Quand nous avons une boucle for à l'intérieur d'une autre boucle for, on l'appelle une boucle for imbriquée. Il existe de nombreuses applications d'une boucle for imbriquée.
Considérez l'exemple de liste ci-dessus. La boucle for imprime des mots individuels de la liste. Mais que se passe-t-il si nous voulons imprimer les caractères individuels de chacun des mots dans la liste à la place ?
C'est ici qu'une boucle for imbriquée fonctionne mieux. La première boucle (boucle parente) parcourra les mots un par un. La deuxième boucle (boucle enfant) parcourra les caractères de chacun des mots.
words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
#This loop is fetching word from the list
print ("The following lines will print each letters of "+word)
for letter in word:
#This loop is fetching letter for the word
print (letter)
print("") #This print is used to print a blank line
Sortie
Une boucle imbriquée est structurellement semblable à des instructions if imbriquées.
Boucle for en Python avec la fonction range()
La fonction range en Python est l'une des fonctions intégrées. Lorsque vous souhaitez que la boucle for s'exécute un nombre spécifique de fois, ou que vous devez spécifier une plage d'objets à afficher, la fonction range fonctionne très bien.
Lorsque vous travaillez avec range(), vous pouvez lui passer entre 1 et 3 arguments entiers :
startindique la valeur entière à laquelle la séquence commence, si cela n'est pas inclus alorsstartcommence à 0.stopest toujours requis et est l'entier qui est compté jusqu'à mais non inclusstepdéfinit de combien augmenter (ou diminuer dans le cas de nombres négatifs) l'itération suivante ; si cela est omis, alorssteppar défaut est égal à 1.
Considérez l'exemple suivant où je veux imprimer les nombres 1, 2 et 3 :
for x in range(3):
print("Printing:", x)
Output
Printing: 0
Printing: 1
Printing: 2
La fonction range prend également un autre paramètre en plus du début et de la fin. C'est le paramètre d'incrément. Il indique à la fonction range combien de nombres sauter entre chaque décompte.
Dans l'exemple ci-dessous, j'ai utilisé le numéro 3 comme étape et vous pouvez voir que les nombres de sortie sont le nombre précédent + 3.
for n in range(1, 10, 3):
print("Printing with step:", n)
Output
Printing with step: 1
Printing with step: 4
Printing with step: 7
Nous pouvons également utiliser une valeur négative pour notre argument step afin d'itérer en arrière, mais nous devrons ajuster nos arguments start et stop en conséquence:
for i in range(100,0,-10):
print(i)
Ici, 100 est la valeur de début, 0 est la valeur de fin, et -10 est la plage, donc la boucle commence à 100 et se termine à 0, en diminuant de 10 à chaque itération. Cela se produit dans la sortie :
100
90
80
70
60
50
40
30
20
10
Lors de la programmation en Python, les boucles for utilisent souvent le type de séquence range() comme paramètres pour l'itération.
Instruction break avec une boucle for
L'instruction break est utilisée pour sortir prématurément de la boucle for. Elle est utilisée pour rompre la boucle for lorsqu'une condition spécifique est remplie.
Disons que nous avons une liste de nombres et que nous voulons vérifier si un nombre est présent ou non. Nous pouvons parcourir la liste des nombres et si le nombre est trouvé, sortir de la boucle car nous n'avons pas besoin de continuer à parcourir les éléments restants.
Dans ce cas, nous allons utiliser la condition if else de Python avec notre boucle for.
nums = [1, 2, 3, 4, 5, 6]
n = 2
found = False
for num in nums:
if n == num:
found = True
break
print(f'List contains {n}: {found}')
Output
List contains 2: True
L'instruction continue avec la boucle for
Nous pouvons utiliser des déclarations continue à l'intérieur d'une boucle for pour sauter l'exécution du corps de la boucle for pour une condition spécifique.
Disons que nous avons une liste de nombres et que nous voulons imprimer la somme des nombres positifs. Nous pouvons utiliser les instructions continue pour ignorer la boucle for pour les nombres négatifs.
nums = [1, 2, -3, 4, -5, 6]
sum_positives = 0
for num in nums:
if num < 0:
continue
sum_positives += num
print(f'Sum of Positive Numbers: {sum_positives}')
Boucle for en Python avec un bloc else
Nous pouvons utiliser un bloc else avec une boucle for Python. Le bloc else est exécuté uniquement lorsque la boucle for n'est pas terminée par une instruction break.
Disons que nous avons une fonction pour imprimer la somme des nombres si et seulement si tous les nombres sont pairs.
Nous pouvons utiliser l'instruction break pour terminer la boucle for si un nombre impair est présent. Nous pouvons imprimer la somme dans la partie else afin qu'elle ne soit imprimée que lorsque la boucle for s'exécute normalement.
def print_sum_even_nums(even_nums):
total = 0
for x in even_nums:
if x % 2 != 0:
break
total += x
else:
print("For loop executed normally")
print(f'Sum of numbers {total}')
this will print the sum
print_sum_even_nums([2, 4, 6, 8])
this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])
Output
For loop executed normally
Sum of numbers 20
Pour les boucles utilisant des types de données séquentiels
Les listes et d'autres types de séquences de données peuvent également être utilisés comme paramètres d'itération dans les boucles for. Plutôt que d'itérer à travers un range(), vous pouvez définir une liste et itérer à travers cette liste.
Nous allons assigner une liste à une variable, puis itérer à travers la liste :
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)
Dans ce cas, nous imprimons chaque élément de la liste. Bien que nous ayons utilisé la variable shark, nous aurions pu appeler la variable n'importe quel autre nom de variable valide et nous obtiendrions la même sortie :
hammerhead
great white
dogfish
frilled
bullhead
requiem
La sortie ci-dessus montre que la boucle for a itéré à travers la liste et a imprimé chaque élément de la liste par ligne.
Les listes et d'autres types de données basés sur des séquences comme les chaînes et les tuples sont couramment utilisés avec des boucles car ils sont itérables. Vous pouvez combiner ces types de données avec range() pour ajouter des éléments à une liste, par exemple :
sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']
Ici, nous avons ajouté une chaîne de caractère de 'requin' pour chaque élément de la longueur de la liste requins.
Vous pouvez également utiliser une boucle for pour construire une liste à partir de zéro :
integers = []
for i in range(10):
integers.append(i)
print(integers)
Dans cet exemple, la liste entiers est initialisée vide, mais la boucle for remplit la liste comme suit :
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
De même, nous pouvons itérer à travers des chaînes :
sammy = 'Sammy'
for letter in sammy:
print(letter)
S
a
m
m
y
L'itération à travers les tuples se fait dans le même format que l'itération à travers les listes ou les chaînes de caractères ci-dessus.
Lors de l'itération à travers un dictionnaire, il est important de garder à l'esprit la structure clé : valeur pour s'assurer que vous appelez le bon élément du dictionnaire. Voici un exemple qui appelle à la fois la clé et la valeur:
sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
name: Sammy
animal: shark
location: ocean
color: blue
Lors de l'utilisation de dictionnaires avec des boucles for, la variable d'itération correspond aux clés du dictionnaire, et dictionary_variable[iterating_variable] correspond aux valeurs. Dans le cas ci-dessus, la variable d'itération key a été utilisée pour représenter la clé, et sammy_shark[key] a été utilisée pour représenter les valeurs.
Les boucles sont souvent utilisées pour itérer et manipuler des types de données séquentiels.
Conclusion
La boucle for en Python est très similaire à celle d'autres langages de programmation. Nous pouvons utiliser les instructions break et continue avec la boucle for pour modifier l'exécution. Cependant, en Python, nous pouvons également avoir un bloc else optionnel dans la boucle for.
J'espère que vous avez recueilli des idées intéressantes grâce au tutoriel ci-dessus. Si vous avez des questions, faites-le nous savoir dans les commentaires ci-dessous.
À partir de ici, vous pouvez continuer à apprendre sur les boucles en lisant des tutoriels sur les boucles while et les instructions break, continue et pass.
Pour travailler avec des boucles for dans des projets, suivez les tutoriels suivants :
- Comment créer un Twitterbot avec Python 3 et la bibliothèque Tweepy
- Comment travailler avec des données linguistiques en Python 3 en utilisant le Natural Language Toolkit NLTK
- Comment tracer la fréquence des mots en utilisant matplotlib avec Python 3

