Tout ce que tu as besoin de savoir

Ce tutoriel vous apprendra tout sur l’utilisation des boucles for en Python avec des exemples de code.

En programmation, les boucles vous aident à répéter un ensemble spécifique d’instructions. Vous utiliserez des boucles for pour des itérations définies lorsque :

  • vous savez que vous allez travailler avec une séquence avec un nombre fini d’éléments
  • vous voyez le nombre de répétitions à l’avance

Ce tutoriel vous apprendra tout sur l’utilisation des boucles for en Python. Vous commencerez par apprendre la syntaxe et les itérations simples à l’aide d’une boucle for. Ensuite, vous apprendrez à traiter les arguments de ligne de commande, à utiliser des instructions de contrôle de boucle, etc.

Commençons…

Syntaxe de Python pour la boucle

La syntaxe générique pour utiliser la boucle for en Python est la suivante :

for item in iterable:
  # do something on item
  statement_1
  statement_2
  .
  .
  .
  statement_n

Dans la syntaxe ci-dessus :

  • item est la variable de bouclage.
  • iterable désigne tout itérable Python tel que des listes, des tuples et des chaînes.
  • instruction_1 à instruction_n désignent les instructions dans le corps de la boucle.

Remarque : veillez à ajouter deux-points (:) après le nom de l’itérable et à mettre en retrait toutes les instructions du corps de la boucle de quatre espaces.

Commun pour les constructions de boucle en Python

Lors de l’utilisation d’une boucle for :

  • Vous pouvez accéder directement aux éléments en utilisant la syntaxe décrite dans la section précédente.
  • Vous pouvez utiliser la boucle for en conjonction avec les fonctions intégrées Python telles que range() et enumerate().

Nous les couvrirons dans cette section.

Utilisation de la boucle for pour accéder aux éléments

Pour améliorer la lisibilité, vous devez choisir une variable en boucle indiquant le contenu de la liste. Par exemple, dans l’exemple ci-dessous, nums est une liste de nombres que nous utilisons num comme variable de bouclage. Remarquez que for num in nums: est intuitif et facile à lire.

nums = [4,5,9,1,3]
for num in nums:
  print(num)

# Output
4
5
9
1
3

En ajoutant quelques exemples supplémentaires, vous pouvez utiliser pour les fruits dans les fruits : et pour les étudiants dans les étudiants : lorsque vous parcourez la liste des fruits et des étudiants, respectivement.

Utilisation de la boucle for avec la fonction range()

Lorsque vous souhaitez accéder à un élément de liste via son index, vous pouvez utiliser la fonction range().

En Python, range(start, stop, step) renvoie un objet range, que vous pouvez parcourir en boucle pour obtenir les indices : start, start + step, etc., jusqu’à stop, mais sans l’inclure.

for i in range(len(nums)):
  print(nums[i])

# Output
4
5
9
1
3

Vous pouvez également utiliser la fonction range() pour générer une séquence de nombres à parcourir en boucle. Dans l’exemple ci-dessous, nous définissons le paramètre d’étape facultatif sur 2. Nous obtenons donc des nombres de 10 à 20, mais non compris, par étapes de 2.

for i in range(10,20,2):
  print(i)

# Output
10
12
14
16
18

Utilisation de la boucle for avec la fonction enumerate()

Lorsque vous souhaitez parcourir un itérable et accéder simultanément aux éléments et à leurs index, vous pouvez utiliser la fonction enumerate().

Voici un exemple.

for idx, num in enumerate(nums):
  print(f"{idx}:{num}")

# Output
0:4
1:5
2:9
3:1
4:3

Comment lire des éléments de listes à l’aide de la boucle for en Python

Pour parcourir les listes Python à l’aide de la boucle for, vous pouvez utiliser la syntaxe générique de la section précédente.

Dans l’exemple ci-dessous, nums est itérable et num est la variable de bouclage.

nums = [4,5,9,1,3]
for num in nums:
  print(f"{num} times 3 is {num*3}") # action on each num

# Output
4 times 3 is 12
5 times 3 is 15
9 times 3 is 27
1 times 3 is 3
3 times 3 is 9

Comment parcourir des chaînes à l’aide de la boucle for en Python

Les chaînes Python sont itérables et vous pouvez effectuer des boucles, des indexations, des découpages, etc.

Remarque : Python n’a pas de type de données caractère intégré. Ainsi, vous pouvez traiter un caractère comme une chaîne de longueur un.

my_string = "Code"
for char in my_string:
  print(char)

# Output
C
o
d
e

Comment parcourir des tableaux en boucle à l’aide de la boucle for en Python

Vous pouvez parcourir des tableaux à l’aide de boucles et imbriquer des boucles.

Dans l’extrait de code ci-dessous, array1 est une liste imbriquée contenant des listes plus petites comme éléments. Ainsi, une boucle dans array1 donne chaque ligne, comme indiqué ci-dessous.

array1 = [[2,3],[7,8]]
for row in array1:
  print(row)

# Output
[2, 3]
[7, 8]

Pour accéder aux éléments individuels de chaque ligne, vous pouvez utiliser une autre boucle for.

array1 = [[2,3],[7,8]]
for row in array1:
  for elt in row:
    print(elt)

Dans la cellule de code ci-dessus :

  • La boucle for externe vous aide à indexer les lignes.
  • La boucle for interne vous permet de puiser dans les éléments de chaque ligne.

Voici la sortie correspondante.

Output
2
3
7
8

Comment lire les arguments de la ligne de commande à l’aide de la boucle for

En tant que développeur, vous devez être à l’aise pour exécuter des scripts Python à partir de la ligne de commande et utiliser des arguments de ligne de commande pour interagir avec votre script.

Vous pouvez utiliser les modules intégrés de Python tels que sys et argparse pour analyser et lire les arguments de ligne de commande.

Dans cette section, nous verrons comment utiliser le module sys et utiliser une boucle for pour parcourir la liste des arguments de la ligne de commande.

Dans le module sys, sys.argv est la liste des arguments de ligne de commande que vous transmettez. Vous pouvez donc parcourir sys.argv comme vous le feriez dans n’importe quelle liste Python.

# main.py

import sys

for arg in sys.argv:
    print(arg)

Vous pouvez maintenant exécuter le programme à partir de la ligne de commande, comme indiqué ci-dessous.

$ python main.py Hello Python3
main.py
Hello
Python3

Par défaut, le nom du module est le premier argument et est à l’index zéro dans sys.argv.

Si vous souhaitez accéder aux indices et aux arguments correspondants, vous pouvez utiliser la fonction range().

# main.py

import sys

for i in range(len(sys.argv)):
    print(f"arg{i} is {sys.argv[i]}")

▶️ Ensuite, relancez main.py.

$ python main.py Hello Python3
arg0 is main.py
arg1 is Hello
arg2 is Python3

Supposons que vous souhaitiez analyser et traiter les arguments autres que le nom du module. Vous pouvez définir la valeur de départ sur 1, comme dans la cellule de code ci-dessous.

# main.py

import sys

for i in range(1,len(sys.argv)):
     print(f"arg{i} is {sys.argv[i]}")
$ python main.py Hello Python3
arg1 is Hello
arg2 is Python3

En mettant tout cela ensemble, le fichier main.py contient le code suivant.

# main.py

import sys

print("nPrinting all command-line arguments...")
for arg in sys.argv:
    print(arg)

print("nPrinting all command-line arguments with index...")
for i in range(len(sys.argv)):
    print(f"arg{i} is {sys.argv[i]}")

print("nPrinting command-line arguments except arg0: module_name...")
for i in range(1,len(sys.argv)):
     print(f"arg{i} is {sys.argv[i]}")

Voici la sortie lorsque vous exécutez le module.

$ python main.py Hello Python3

Printing all command-line arguments...
main.py
Hello
Python3

Printing all command-line arguments with index...
arg0 is main.py
arg1 is Hello
arg2 is Python3

Printing command-line arguments except arg0: module_name...
arg1 is Hello
arg2 is Python3

Comment utiliser l’instruction break à l’intérieur de la boucle

Comme d’autres langages de programmation, Python prend également en charge l’utilisation des instructions de contrôle de boucle break et continue. Ces instructions peuvent aider à modifier le flux de contrôle dans les boucles, en fonction de certaines conditions. Voyons comment les utiliser dans une boucle for.

L’instruction break the peut être utilisée pour sortir d’une boucle lorsqu’une condition spécifique est vraie.

Nous voulons écrire un programme pour faire ce qui suit :

  • Fixez k, le nombre d’entrées.
  • Utilisez une boucle for pour lire les entrées de l’utilisateur, un chiffre à la fois, et additionnez les nombres non négatifs (supérieurs ou égaux à zéro).
  • Ce processus doit continuer tant que l’utilisateur saisit des nombres non négatifs.
  • Lorsque l’utilisateur entre un nombre négatif, quittez la boucle et imprimez la somme.

Voici le code qui effectue la tâche ci-dessus.

k= 5
sum = 0
for i in range(k):
  num = int(input("nEnter a number: "))
  if num<0:
    break # exit loop when num < 0
  sum += num

print(sum)

Si l’utilisateur entre un nombre inférieur à zéro, le contrôle sort de la boucle for et passe à la première instruction après la boucle.

Enter a number: 2

Enter a number: 3

Enter a number: 5

Enter a number: -1
10

Comment utiliser continue Statement Inside for Loop

L’instruction continue peut être utilisée pour ignorer certaines itérations en fonction d’une condition spécifique.

Utilisons les mêmes exemples dans la section précédente.

  • Lire l’entrée de l’utilisateur et calculer la somme des nombres non négatifs.
  • Si l’utilisateur entre un nombre négatif, ignorez cette itération, passez à l’itération suivante et lisez le nombre suivant.
k = 5
sum = 0
for i in range(k):
  num = int(input("nEnter a number: "))
  if num<0:
    continue
  sum += num

print(sum)

Voici un exemple de sortie.

Enter a number: 2

Enter a number: 3

Enter a number: 5

Enter a number: -1

Enter a number: 3
13

Le quatrième nombre est -1, qui est négatif. Cependant, cette fois, la boucle for continue jusqu’à ce que nous atteignions le nombre d’entrées spécifié et ignore les entrées négatives. Essentiellement, il renvoie la somme de tous les nombres non négatifs des k nombres d’entrée.

Pouvez-vous exécuter une boucle for infinie en Python ?

Dans tous les exemples et cas d’utilisation dont nous avons parlé jusqu’à présent, nous n’avons jamais rencontré le problème d’une boucle for infinie. Mais peut-on avoir une boucle for infinie en Python ?

Considérez la fonction suivante double().

def double(x = 1):
  return x*2
  • Lorsque vous appelez la fonction double() sans spécifier la valeur de x, la valeur par défaut de 1 est utilisée.
  • Lorsque vous spécifiez une valeur pour x dans l’appel de fonction, cette valeur est utilisée.
double()
# Returns: 2

double(20)
# Returns: 40

En Python, la fonction iter() renvoie un objet itérateur. Vous pouvez utiliser next(iter-obj) pour parcourir la séquence et accéder aux éléments suivants.

– Considérons un callable-object et une valeur, sentinelle.

– iter(callable-object, sentinel) peut être utilisé pour effectuer une itération jusqu’à ce que la valeur de retour de callable-object soit égale à sentinel.

Voyez-vous pourquoi nous pouvons avoir une boucle for infinie dans ce cas ?

Eh bien, vous avez un objet appelable et une valeur sentinelle. Si la valeur de retour de l’appelable n’est jamais égale à la sentinelle, alors la boucle continue indéfiniment !

Utilisons la fonction ci-dessus comme appelable et définissons la valeur sentinelle sur 0.

Remarque : Mentionnez le nom de la fonction double, pas l’appel de fonction double().

Comme la valeur de retour de la fonction double est toujours 2 et n’est jamais égale à 0, on a une boucle infinie !

▶️ Essayez d’exécuter la cellule de code suivante. C’est une boucle for infinie, et vous devrez forcer l’arrêt du programme.

for _ in iter(double,0):
  print("Running...")

Python For Loops : questions pratiques

#1. Utilisez la boucle for pour imprimer tous les nombres pairs compris entre 0 et 20.

Astuce : utilisez la fonction range() avec la valeur de pas correcte.

#2. Imprimez tous les nombres pairs de 20 à 0.

Astuce : utilisez une valeur négative pour le paramètre step dans la fonction range().

#3. Créez un tableau NumPy tridimensionnel.

Conseil : utilisez la boucle for et les boucles for imbriquées selon les besoins pour accéder aux lignes et aux entrées individuelles du tableau.

Emballer

Voici un résumé de ce que vous avez appris dans ce tutoriel.

  • La syntaxe pour utiliser la boucle Python for avec les fonctions range() et enumerate()
  • Utilisation de boucles for pour parcourir des listes, des tableaux et des chaînes, et lire des arguments de ligne de commande
  • Utilisation des instructions de contrôle de boucle : break pour sortir de la boucle et instruction continue pour ignorer certaines itérations, en fonction des conditions, à l’intérieur des boucles for
  • Comprendre la possibilité de boucles for infinies en Python

Ensuite, apprenez à utiliser la méthode split() en Python.