Python 3 - Boucles

En général, les instructions sont exécutées de manière séquentielle - La première instruction d'une fonction est exécutée en premier, suivie de la seconde, et ainsi de suite. Il peut arriver que vous deviez exécuter un bloc de code plusieurs fois.

Les langages de programmation fournissent diverses structures de contrôle qui permettent des chemins d'exécution plus compliqués.

Une instruction de boucle nous permet d'exécuter une instruction ou un groupe d'instructions plusieurs fois. Le diagramme suivant illustre une instruction de boucle -

Le langage de programmation Python fournit les types de boucles suivants pour gérer les exigences de boucle.

N ° Sr. Type de boucle et description
1 boucle while

Répète une instruction ou un groupe d'instructions pendant qu'une condition donnée est VRAIE. Il teste la condition avant d'exécuter le corps de la boucle.

2 pour boucle

Exécute une séquence d'instructions plusieurs fois et abrége le code qui gère la variable de boucle.

3 boucles imbriquées

Vous pouvez utiliser une ou plusieurs boucles dans une autre boucle while ou for.

Déclarations de contrôle de boucle

Les instructions de contrôle de boucle modifient l'exécution de sa séquence normale. Lorsque l'exécution quitte une étendue, tous les objets automatiques qui ont été créés dans cette étendue sont détruits.

Python prend en charge les instructions de contrôle suivantes.

N ° Sr. Déclaration de contrôle et description
1 déclaration break

Termine l'instruction de boucle et transfère l'exécution à l'instruction immédiatement après la boucle.

2 continue déclaration

Force la boucle à sauter le reste de son corps et à retester immédiatement son état avant de réitérer.

3 déclaration de réussite

L'instruction pass en Python est utilisée lorsqu'une instruction est requise syntaxiquement mais que vous ne souhaitez pas qu'une commande ou un code s'exécute.

Passons brièvement en revue les instructions de contrôle de boucle.

Itérateur et générateur

Iteratorest un objet qui permet à un programmeur de parcourir tous les éléments d'une collection, quelle que soit son implémentation spécifique. En Python, un objet itérateur implémente deux méthodes,iter() et next().

Les objets String, List ou Tuple peuvent être utilisés pour créer un Iterator.

list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
   print (x, end=" ")
or using next() function
while True:
   try:
      print (next(it))
   except StopIteration:
      sys.exit() #you have to import sys module for this

UNE generator est une fonction qui produit ou produit une séquence de valeurs à l'aide de la méthode yield.

Lorsqu'une fonction de générateur est appelée, elle renvoie un objet générateur sans même commencer l'exécution de la fonction. Lorsque la méthode next () est appelée pour la première fois, la fonction commence à s'exécuter jusqu'à ce qu'elle atteigne l'instruction yield, qui renvoie la valeur obtenue. Le rendement garde la trace, c'est-à-dire se souvient de la dernière exécution et le deuxième appel next () continue à partir de la valeur précédente.

Exemple

L'exemple suivant définit un générateur, qui génère un itérateur pour tous les nombres de Fibonacci.

#!usr/bin/python3

import sys
def fibonacci(n): #generator function
   a, b, counter = 0, 1, 0
   while True:
      if (counter > n): 
         return
      yield a
      a, b = b, a + b
      counter += 1
f = fibonacci(5) #f is iterator object

while True:
   try:
      print (next(f), end=" ")
   except StopIteration:
      sys.exit()