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()