for, continue, break Expliquer le flux du traitement itératif dans Python3-Part 1

Après avoir commencé la programmation, j'ai réussi à écrire des instructions simples pour et while, mais ...

** continuer la déclaration? déclaration break Comment l'utilisez vous? ?? ** ** ** Double boucle? ?? Triple boucle? ?? Et qu'arrive-t-il à l'ordre de traitement lorsque l'instruction if est ajoutée? ?? ?? ** **

C'est mon dossier d'étude qui est resté bloqué.

La partie 1 concerne les boucles simples (pour, si, continuez, les instructions break). Enfin, une petite double boucle sort en bonus. (J'ai essayé d'écrire une boucle double / triple, mais c'était trop long, donc je le ferai la prochaine fois. Sweat)

Tous les programmes suivants sont numérotés sur le côté gauche pour faciliter la compréhension du flux de lecture de code. Si vous souhaitez vérifier le fonctionnement du programme, veuillez le saisir vous-même. C'est un problème, mais c'est une bonne étude. (Je le fais en vérifiant, mais je suis désolé si je fais une erreur)

Boucle simple

1.1 pour la peine

01 for i in range(4):
02     print(i)

Résultat d'exécution

0
1
2
3

Commençons par une simple instruction for. Lorsque vous exécutez le programme ci-dessus, vous pouvez voir que le processus de 1 → 2 → 1 → 2 → 1 → 2 → 1 → 2 est répété. (Ci-après → omis) Ordre de traitement: 12121212

1.2 pour + if instruction

1 for i in range(4):
2     if i < 2:
3         print(i)

Résultat d'exécution

0
1

Il va à 123123, mais puisque ʻi = 2 et 2 devient ʻi <2 == False, le processus de 3 n'est pas exécuté. La même chose est vraie pour le prochain ʻi = 3`. Traitement de l'ordre: 1231231212

Mais que se passe-t-il s'il y a une autre déclaration ici?

1.3 pour + if + else instruction

1 for i in range(4):
2     if i < 2:
3         print(i)
4     else:
5         print('a')

Résultat d'exécution

0
1
a
a

Il en va de même jusqu'au milieu, mais il ne revient pas à 1 à l'endroit où le processus de 3 n'a pas été exécuté plus tôt, et continue avec 45. Traitement de la commande: 123123124451245

Ensuite, mettez une instruction continue au lieu de else

1.4 pour + if + continue instruction

1 for i in range(4):
2     if i < 2:
3         print(i)
4         continue
5     print('a')

Résultat d'exécution

0
1
a
a

Le programme était différent, mais le résultat était le même. (La personne qui l'a écrit a également été surprise!?) Cependant, l'ordre de traitement est différent. Lorsque l'instruction continue est exécutée, la répétition sous l'instruction continue est ignorée. Dans le cas du programme ci-dessus, le print ('a') de 5 n'est pas exécuté. Ordre de traitement: 12341234125125

Au fait, quel est le résultat de l'exécution si seule l'instruction continue du programme ci-dessus est supprimée? Ceci est un bonus. Si vous le souhaitez, pensez-y ou exécutez le programme vous-même.

1.4 Bonus: si vous supprimez l'instruction continue ...

1 for i in range(4):
2     if i < 2:
3         print(i)
4     print('a')

Résultat d'exécution

0
a
1
a
a
a

Comment était-ce, était-ce comme prévu? Dans la version 1.4, print ('a'), qui était ignorée par l'instruction continue, était toujours exécutée. Comme vous pouvez le voir, l'instruction continue est utile lorsque vous avez un programme que vous souhaitez laisser non traité sous certaines conditions. Ordre de traitement: 12341234124124

1.5 pour + if + break instruction

1 for i in range(4):
2     if i < 2:
3         print(i)
4         break
5     print('a')

Résultat d'exécution

0

Vient ensuite l'instruction break. Je viens de changer l'instruction continue de la version 1.4 en une instruction break Le résultat de l'exécution a considérablement changé par rapport à 1.4. Si vous passez à 123 et exécutez l'instruction break de 4, le traitement de la boucle sera interrompu de force. Donc, il était censé faire une boucle 4 fois, mais il s'est terminé en 1 fois. Ordre de traitement: 1234

Enfin, en prime, je vais vous présenter ce qui se passe s'il y a une instruction break dans une double boucle et la terminer.

1.5 Bonus 1 Double boucle (pour + if instruction)

1 for i in range(4):
2     if i < 2:
3         print(i)
4         for j in range(2):
5             print(j+10)

Résultat d'exécution

0
10
11
1
10
11

Tout d'abord, vérifiez la double boucle de base. 1 pour i dans la plage (4): plus loin dans l'instruction for de Quand il y a une instruction for de for j in range (2): of 4. L'ordre de traitement passe à 123 et devient 4545, où il revient à 1.

En d'autres termes, après avoir terminé tout le traitement de la boucle interne, il revient au traitement de la boucle externe.

Et comme précédemment, si 2 devient ʻi <2 == False`, 3 ne sera pas exécuté. Traitement de la commande: 12345545123445512212

Vient ensuite le cas où il y a une instruction break dans la double boucle du sujet principal.

1.5 Bonus 2 Double boucle (pour + if + break statement)

1 for i in range(4):
2     if i < 2:
3         print(i)
4         for j in range(2):
5             print(j+10)
6             break

Résultat d'exécution

0
10
1
10

Je viens d'ajouter break à la fin de l'instruction double boucle. Si l'instruction break est dans la boucle externe, le résultat est le même que 1.5, donc je la mets dans l'instruction for interne.

Comme précédemment, allez à 12345 et exécutez l'instruction break à 6, puis l'instruction break sera Termine de force le traitement de la boucle interne.

Revenez ensuite à la boucle extérieure et continuez avec 123456 pour revenir à 1. Et quand 2 devient ʻi <2 == False`, 3 n'est pas exécuté. Traitement de la commande: 12345612345612112

finalement

Merci d'avoir lu cet article. J'espère que cela vous aide même un peu. Comme il s'agissait de mon premier article, il a peut-être été difficile à lire dans de nombreux endroits. Dans ce cas, merci de me le faire savoir dans les commentaires. Ce sera très utile car cela mènera à la prochaine réflexion.

En fait, j'allais écrire sur la déclaration while, ** 'Ce n'est pas très différent de la phrase, vous n'avez pas à l'écrire' ** Je ne pense pas que. Désolé pour le manque de sueur d'étude

** S'il vous plaît se référer à cette citation pour une utilisation correcte de la déclaration et de la déclaration while! N'étudiez plus! !! '** Tsukkomi est le bienvenu. Merci de votre collaboration.

Cet article est basé sur les sites suivants.

http://www.yamamo10.jp/yamamoto/comp/Python/loop/index.php

Recommended Posts

for, continue, break Expliquer le flux du traitement itératif dans Python3-Part 1
Afficher le résultat du traitement de la géométrie en Python
Traitement d'image? L'histoire du démarrage de Python pour
Vérifier l'existence de tables BigQuery en Java
[Pour les débutants] Je souhaite expliquer le nombre d’apprentissage d’une manière facile à comprendre.
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Obtenez le nombre d'occurrences pour chaque élément de la liste
La fonction d'affichage d'image d'iTerm est pratique lors du traitement d'images.
Google recherche la chaîne sur la dernière ligne du fichier en Python
Expliquez le code de Tensorflow_in_ROS
[Python] Traitement itératif (for, while)
Envelopper (partie de) la bibliothèque AtCoder en Cython pour une utilisation en Python
Affichage en temps réel de la progression du traitement côté serveur sur le navigateur (implémentation de la barre de progression)
Expliquez en détail le code magique des éléments de table IQ Bot
Une fonction qui mesure le temps de traitement d'une méthode en python
Dockerfile avec les bibliothèques nécessaires pour le traitement du langage naturel avec python
Papier: Traitement intracérébral de la musique
L'histoire du "trou" dans le fichier
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_3
[Ota Ward] Vérifiez l'état du traitement des demandes de prestations forfaitaires spéciales
Lignes directrices pour se réincarner dans le monde du développement de programmation Linux (langage C / C ++)
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_1
Obtenez la clé pour la migration de la deuxième couche de données JSON avec python
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_2