Boucle for Python

La boucle for en Python est une fonction d’itération. Si vous avez un objet séquence comme une liste, vous pouvez utiliser la boucle for pour itérer sur 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 « while loop ».

Syntaxe de la boucle for en Python

La syntaxe de base de la boucle for en Python ressemble quelque chose à celle mentionnée ci-dessous.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Boucle for en Python Syntaxe en Détail

  • Le premier mot de l’instruction commence par le mot-clé « for » 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
  • Ensuite vient le mot-clé « in » en Python qui indique à la variable d’itération de boucler pour les éléments dans 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 instructions de la boucle est l’endroit où vous pouvez jouer avec la variable d’itération et effectuer diverses fonctions

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 de caractères » comme une séquence de caractères au lieu de regarder la chaîne dans son ensemble.

Utilisation de la boucle for pour itérer sur une liste ou un tuple Python

Les listes et les tuples sont des objets itérables. Voyons maintenant comment nous pouvons boucler sur les éléments de ces objets.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

Sortie:

Apple
Banana
Car
Dolphin

Maintenant, avançons et travaillons sur la boucle pour itérer 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}')

# Sortie
# La somme des nombres est 10

Imbrication des boucles for en Python

Lorsque nous avons une boucle for à l’intérieur d’une autre boucle for, on l’appelle une boucle for imbriquée. Il existe de multiples 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 faire si nous voulons imprimer les caractères individuels de chacun des mots dans la liste?

C’est là qu’une boucle for imbriquée fonctionne mieux. La première boucle (boucle parent) 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:
        #Cette boucle extrait le mot de la liste
        print ("The following lines will print each letters of "+word)
        for letter in word:
                #Cette boucle extrait la lettre du mot
                print (letter)
        print("") #Cette instruction print est utilisée pour imprimer une ligne vide

Sortie

A nested loop is structurally similar to nested if statements

Boucle for Python avec la fonction range()

La plage 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 si vous devez spécifier une plage d’objets à imprimer, la fonction range fonctionne très bien.

Lorsque vous travaillez avec range(), vous pouvez passer entre 1 et 3 arguments entiers à celle-ci:

  • start indique la valeur entière à partir de laquelle la séquence commence, si elle n’est pas incluse, alors start commence à 0
  • stop est toujours requis et est l’entier jusqu’auquel on compte mais qui n’est pas inclus
  • step définit de combien augmenter (ou diminuer dans le cas des nombres négatifs) la prochaine itération, si cela est omis, alors step est par défaut à 1

Considérez l’exemple suivant où je veux imprimer les nombres 1, 2 et 3:

for x in range(3):
    print("Printing:", x)
	
# Sortie

# Impression: 0
# Impression: 1
# Impression: 2

La fonction range prend également un autre paramètre en plus du début et de la fin. Il s’agit du paramètre step. Il indique à la fonction range de sauter combien de nombres entre chaque compte.

Dans l’exemple ci-dessous, j’ai utilisé le nombre 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)
	
# Sortie

# Impression avec étape: 1
# Impression avec étape: 4
# Impression avec étape: 7

Nous pouvons également utiliser une valeur négative pour notre argument step pour 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 start, 0 est la valeur de stop, 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:

Output
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.

Déclaration break avec une boucle for

La déclaration break est utilisée pour sortir de la boucle for prématurément. Elle est utilisée pour interrompre la boucle for lorsqu’une condition spécifique est rencontrée.

Supposons que nous ayons une liste de nombres et que nous voulions vérifier si un nombre est présent ou non. Nous pouvons itérer sur la liste de nombres et si le nombre est trouvé, sortir de la boucle car nous n’avons pas besoin de continuer à itérer sur les éléments restants.

Dans ce cas, nous utiliserons la condition Python if else 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}')

# Sortie
# Liste contient 2: True

Déclaration continue avec une boucle for

Nous pouvons utiliser des déclarations continue à l’intérieur d’une boucle for pour ignorer l’exécution du corps de la boucle for pour une condition spécifique.

Supposons que nous ayons une liste de nombres et que nous voulions imprimer la somme des nombres positifs. Nous pouvons utiliser les instructions continue pour sauter la boucle for des 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 Python avec un bloc else

Nous pouvons utiliser le 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.

Supposons que nous ayons une fonction pour imprimer la somme des nombres uniquement 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 est exécutée 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}')


# cela imprimeras la somme
print_sum_even_nums([2, 4, 6, 8])

# cela n'imprimera pas la somme à cause d'un nombre impair dans la séquence
print_sum_even_nums([2, 4, 5, 8])

# Sortie

# La boucle for a été exécutée normalement
# Somme des nombres 20

Boucles for utilisant des types de données séquentiels

Listes et autres types de séquences de données peuvent également être utilisés comme paramètres d’itération dans les boucles for. Au lieu d’itérer à travers une range(), vous pouvez définir une liste et itérer à travers cette liste.

Nous allons attribuer 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 par n’importe quel autre nom de variable valide et obtenir le même résultat :

Output
hammerhead great white dogfish frilled bullhead requiem

La sortie ci-dessus montre que la boucle for a parcouru la liste et a imprimé chaque élément de la liste par ligne.

Les listes et autres types de données basés sur des séquences comme les chaînes de caractères et les tuples sont couramment utilisés avec les 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)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Ici, nous avons ajouté une chaîne de caractères de remplacement 'shark' pour chaque élément de la longueur de la liste sharks.

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 integers est initialisée vide, mais la boucle for remplit la liste comme suit:

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

De même, nous pouvons itérer à travers des chaînes de caractères:

sammy = 'Sammy'

for letter in sammy:
   print(letter)
Output
S a m m y

Itérer à travers des tuples se fait dans le même format que l’itération à travers des listes ou des chaînes de caractères ci-dessus.

Lorsque vous itérez à travers un dictionnaire, il est important de garder à l’esprit la structure clé : valeur pour vous 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])
Output
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é 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 aux 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 facultatif dans une boucle for.

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

À partir d’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 les boucles for dans des projets, suivez les tutoriels suivants :

Source:
https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3