[Python of Hikari-] Chapitre 05-05 Syntaxe de contrôle (pour instructions-boucles multiples-)

[Python] Chapitre 05-05 pour Statement-Multiple Loops-

Dans l'instruction for, j'ai écrit le traitement dans l'instruction for après **: ** of for i in range (10):. En fait, vous pouvez également écrire plus d'instructions for dans cette instruction for.

Cette fois, je vais aborder plusieurs boucles, telles que l'écriture d'une instruction for dans une instruction for.

Plusieurs boucles utilisant l'instruction for

Lorsque vous écrivez une double boucle de for, vous devez utiliser des variables différentes pour l'extérieur pour et l'intérieur pour.

pour la variable 1 dans la cible de répétition:
pour la variable 2 dans la cible de répétition:
Contenu du traitement répété

Regardons cela concrètement. Tout d'abord, créons un programme qui produit un tableau de multiplications, ce qui est souvent expliqué en doubles boucles. Créez un fichier avec le nom de fichier 05-05-01.py </ font> dans chap05 </ font> et utilisez le code suivant S'il vous plait écrivez.

05-05-01.py


for i in range(1, 10):  #(1)
    for j in range(1, 10):  #(2)
        print(i*j, end='\t') #(3)  end='\t'Sorties des onglets sans saut de ligne
    print('') #(4)Processus pour rompre une ligne pour passer à l'étape suivante


05-05-01.py Résultat d'exécution

[Résultat de l'exécution] </ font> * Officiellement, la sortie est alignée. (Veuillez noter qu'il est légèrement éteint sur Qiita) </ font> 1 2  3  4  5  6  7  8  9  2 4  6  8  10 12 14 16 18  3 6  9  12 15 18 21 24 27  4 8  12 16 20 24 28 32 36  5 10 15 20 25 30 35 40 45  6 12 18 24 30 36 42 48 54  7 14 21 28 35 42 49 56 63  8 16 24 32 40 48 56 64 72  9 18 27 36 45 54 63 72 81

Cette fois, je vais expliquer en utilisant les commentaires (1) à (4).

** [1ère boucle (à l'extérieur)] </ font> ** Tout d'abord, ** for i in range (1, 10): ** in (1), mais la raison pour laquelle je ne l'ai pas défini sur range (10) est que si je le règle sur range (10), il commencera à 0. , Start est décrit comme 1. (À ce stade, ** i = 1 **.)

** [1ère boucle (à l'extérieur)] </ font> [1ère boucle (à l'intérieur)] </ font> ** Ensuite, entrez le contenu de (2) ** pour i dans la plage (1, 10): **. Immédiatement, vous verrez ** pour j dans la plage (1, 10): **. (À ce stade, ** i = 1, j = 1 </ font> **.)

Ensuite, ** i * j ** est calculé dans la fonction d'impression de (3). Et il est sorti tel quel, à ce stade ** i = 1, j = 1 **, donc le résultat de sortie sera 1 </ font>. Puisque ** end = '\ t' ** est spécifié dans la fonction d'impression, la valeur suivante est sortie vers la droite sans couper la ligne. Revenez ensuite à (2).

** [1ère boucle (à l'extérieur)] </ font> [2ème boucle (à l'intérieur)] </ font> ** C'est le traitement de ** pour j dans l'intervalle (1, 10): ** dans (2). (À ce stade, ** i = 1, j = 2 </ font> **.)

Ensuite, ** i * j ** est calculé dans la fonction d'impression de (3). Et il est sorti tel quel, à ce stade ** i = 1, j = 2 **, donc le résultat de sortie sera 2 </ font>. Puisque ** end = '\ t' ** est spécifié dans la fonction d'impression, la valeur suivante est sortie vers la droite sans couper la ligne. Revenez ensuite à (2).

** [1ère boucle (à l'extérieur)] </ font> [3ème boucle (à l'intérieur)] </ font> ** C'est le traitement de ** pour j dans l'intervalle (1, 10): ** dans (2). (À ce stade, ** i = 1, j = 3 </ font> **.)

Ensuite, ** i * j ** est calculé dans la fonction d'impression de (3). Et il est sorti tel quel, à ce stade ** i = 1, j = 3 **, donc le résultat de sortie sera 3 </ font>. Puisque ** end = '\ t' ** est spécifié dans la fonction d'impression, la valeur suivante est sortie vers la droite sans couper la ligne. Revenez ensuite à (2).

Répétez jusqu'à <font color = # 0cc> <j = 9. > </ font>

** [1ère boucle (à l'extérieur)] </ font> [9ème boucle (à l'intérieur)] </ font> ** C'est le traitement de ** pour j dans l'intervalle (1, 10): ** dans (2). (À ce stade, ** i = 1, j = 9 </ font> **.)

Ensuite, ** i * j ** est calculé dans la fonction d'impression de (3). Et il est sorti tel quel, à ce stade ** i = 1, j = 9 **, donc le résultat de sortie sera 9 </ font>. Puisque ** end = '\ t' ** est spécifié dans la fonction d'impression, la valeur suivante est sortie vers la droite sans couper la ligne. Revenez ensuite à (2).

Et comme il a dépassé la plage de plage (10), il sort de ** pour j </ font> dans plage (1, 10): **. (Notez qu'il n'a pas encore été supprimé de *** i **) Ensuite, commencez une nouvelle ligne avec print ('') dans (4). C'est parce que la 1ère étape de 99 est terminée et qu'elle passe à la 2ème étape.

** [2e boucle (extérieur)] </ font> ** Ensuite, il revient à ** pour i </ font> dans la plage ( 1 </ font>, 10): ** dans (1). (À ce stade, ** i = 2, j = 9 **.)

** [2ème boucle (à l'extérieur)] </ font> [1ère boucle (à l'intérieur)] </ font> ** Ensuite, entrez le contenu de (2) ** pour i dans la plage (1, 10): **. Immédiatement, vous verrez ** pour j dans la plage (1, 10): **. (À ce stade, ** i = 2, j = 1 </ font> **.)

Ensuite, ** i * j ** est calculé dans la fonction d'impression de (3). Et il est sorti tel quel, à ce stade ** i = 2, j = 1 **, donc le résultat de sortie sera 2 </ font>. Puisque ** end = '\ t' ** est spécifié dans la fonction d'impression, la valeur suivante est sortie vers la droite sans couper la ligne. Revenez ensuite à (2).

<font color = # 0cc> <Après cela, répétez jusqu'à ce que i = 9, j = 9. > </ font>

Et lorsque vous sortez de la double boucle, le processus se termine.

finalement

Comme je l'ai expliqué, les boucles multiples sont assez compliquées, mais au final, le nombre de processus a augmenté et il semble que vous pouvez le comprendre si vous les suivez dans l'ordre. Ce programme à double boucle a été coupé au milieu, mais veuillez suivre le processus. En suivant le programme sur votre bureau, vous pourrez l'utiliser comme une puissance pour les problèmes liés à l'algorithme qui sont posés dans l'examen d'ingénieur de l'information de base, alors essayez-le.

Retournez à [Lien de la table des matières]

Recommended Posts