Site de référence: [Introduction à Python] Comment répéter avec des instructions continues?
Les instructions de boucle Python sont utiles pour faire la même chose encore et encore. Bien que ce soit une telle instruction de boucle, je pense qu'il y a des moments où vous voulez l'exécuter uniquement sous certaines conditions et l'ignorer à d'autres moments. Dans un tel cas, il est pratique d'utiliser l'instruction continue. Cette fois, je vais expliquer comment utiliser l'instruction continue.
L'instruction continue est utilisée dans la répétition de processus tels que l'instruction for. Si vous utilisez l'instruction continue, le traitement suivant est ignoré sans être exécuté et vous passez à la boucle suivante.
list1 = [1, 5, 6, 2, 4, 9, 11, 3]
for number in list1:
if(number < 5):
continue
print(number)
Résultat d'exécution
5 6 9 11
Cet exemple prend des éléments de la liste d'entiers et n'affiche que les éléments supérieurs à 5. À ce moment-là, si le nombre est inférieur à 5, l'instruction continue est exécutée. Lorsque l'instruction continue est exécutée, le contenu qui suit est ignoré et la boucle suivante est lancée. Par conséquent, si le dernier élément est inférieur à 5, le dernier print () sera ignoré et ne sera pas affiché.
Un traitement simple peut être réalisé avec des instructions if-else et des exceptions, mais plus le code est long, plus il est difficile à voir et plus il devient compliqué. Si vous souhaitez ignorer le traitement dans une instruction de boucle, vous pouvez utiliser l'instruction continue.
Auparavant, nous avons utilisé l'instruction continue dans l'instruction for, mais vous pouvez également utiliser l'instruction continue dans la même instruction while en boucle.
list1 = [1, 5, 6, 2, 4, 9, 11, 3]
index = 0
while index < len(list1):
if(list1[index] < 5):
index += 1
continue
print(list1[index])
index += 1
Résultat d'exécution
5 6 9 11
Il s'agit de l'instruction for remplacée par l'instruction while. C'est un peu compliqué, mais c'est exactement la même chose que l'instruction for en ce sens que si le nombre d'éléments est inférieur à 5, l'instruction continue est exécutée et tout le reste du traitement est ignoré.
En Python, l'instruction break est fournie sous forme de syntaxe pour quitter l'instruction de boucle à partir du milieu.
for x in range(100):
if(x == 50):
print('Sortie de l'instruction de boucle (nombre de boucles:{}Fois)'.format(x))
break
Résultat d'exécution
Sortie de l'instruction de boucle (nombre de boucles: 50 fois)
Cette instruction for répète la boucle 100 fois, mais lorsque le nombre de boucles atteint 50 dans l'instruction if, l'instruction break interrompt la boucle. Vous pouvez facilement rompre la boucle avec l'instruction break. Cependant, dans le cas d'une instruction break, même si vous pouvez quitter une boucle, vous ne pouvez pas quitter plusieurs boucles.
list1 = [ [1,5,7], [10,3, 4], [6, 8, 5]]
for list1_item in list1:
for item in list1_item:
print(item)
if(item >= 10):
print('Trouvé plus de 10 numéros')
break
Résultat d'exécution
1 5 7 10 Trouvé plus de 10 numéros 6 8 5
Dans cet exemple, le contenu de la liste bidimensionnelle est référencé dans plusieurs boucles, et s'il y a 10 éléments ou plus, l'affichage s'arrête là. Toutefois, l'instruction break ne peut interrompre qu'une seule boucle. Par conséquent, dans cet exemple, seule la boucle interne est quittée, donc la boucle entière ne se termine pas.
En fait, Python ne permet pas de se sortir de plusieurs boucles. Si vous voulez sortir de plusieurs boucles à la fois, vous devez penser vous-même à l'implémentation. Il y a plusieurs façons de le faire, mais en fait, vous pouvez sortir de plusieurs boucles à la fois en combinant l'instruction continue et la clause else, qui est familière dans l'instruction if.
list1 = [ [1,5,7], [10,3, 4], [6, 8, 5]]
for list1_item in list1:
for item in list1_item:
print(item)
if(item >= 10):
print('Trouvé plus de 10 numéros')
break
else: #Notez que ce n'est pas un if mais un else de l'instruction for interne
continue
break
Résultat d'exécution
1 5 7 10 Trouvé plus de 10 numéros
Avec cette méthode, j'ai pu sortir de la boucle proprement. Tout d'abord, l'instruction for interne est tournée, mais à la fin il y a une clause else. La clause else de l'instruction for est exécutée en dernier après la fin de la boucle. À la fin de la boucle interne, nous passons à la clause else et exécutons l'instruction continue. L'instruction continue est exécutée et la dernière pause est ignorée afin que la boucle continue. Si l'instruction if est exécutée dans la boucle interne (dans cet exemple, un nombre de 10 ou plus est trouvé), la rupture quitte l'instruction de boucle interne, de sorte que la clause else n'est pas exécutée. Par conséquent, la rupture finale est exécutée et la boucle entière peut être quittée.
Recommended Posts