(Python) Boucles. Boucle avec compteur - pour


Boucles

Imaginez une situation où nous devons afficher le mot "Bonjour" 10 fois. Que devons-nous faire ?
Vous pouvez prendre et écrire la commande 10 fois print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour") print("Bonjour")
Mais que se passe-t-il si vous n'avez pas besoin de 10 fois, mais de 20, 30, 40 fois ? Et si 200 fois ? Dans ce cas, la copie prendra beaucoup de temps. Et s'il est nécessaire que l'utilisateur puisse choisir lui-même combien de fois il doit afficher certaines informations à l'écran ? 

Une construction spéciale nous aidera à faire face à cette tâche, qui s'appelle boucle.
 
Une boucle - est une construction algorithmique dans laquelle une certaine séquence de commandes est répétée plusieurs fois.< /div>
Dans la plupart des langages de programmation, il existe deux types de boucles : une boucle avec une variable (for) et une boucle avec une condition (while)
Commençons notre connaissance des cycles du premier type.
 

Boucle avec une variable, ou avec un nombre d'étapes connu (boucle pour)

Il arrive souvent que nous connaissions le nombre de répétitions de toute action, ou que nous puissions calculer le nombre de répétitions en utilisant les données que nous connaissons. Certains langages de programmation ont une commande écrite en russe par la commande
REPEAT (number_of_repetitions).

Dans ce cas, nous pouvons spécifier un nombre spécifique de répétitions. 
Il est intéressant de voir comment ce cycle fonctionne au niveau de la machine :
1. une certaine cellule de mémoire est allouée en mémoire et le nombre de répétitions y est écrit,
2. lorsque le programme exécute une fois le corps de la boucle, le contenu de cette cellule (compteur) est décrémenté de un.
3. l'exécution de la boucle se termine lorsque cette cellule vaut zéro.

Une telle construction n'existe pas en Python, mais il existe un for.
 
Ne pas oublier !
La forme générale de l'opérateur de boucle for est la suivante : pour <compter la variable> dans <valeurs de la variable compteur> :     # corps de la boucle
1. Le nom de la variable compteur peut être n'importe quoi (le plus souvent, ils utilisent la lettre i)
2. Le corps de la boucle est écrit avec un décalage vers la droite, par rapport à la ligne avec l'en-tête de la boucle (pour). La norme PEP8 se décale de 4 espaces.
 
Voyons des exemples de la façon dont vous pouvez écrire la sortie du mot "Bonjour" 10 fois.
 
Exemple 1
for i in range(10): # for variable i mutable in range (in range)   # 0 à 10 (10 n'est pas inclus) print("Bonjour") # printBonjour La variable   est un compteur d'itérations (étapes) terminées de la boucle. Dans ce cas, la boucle s'exécute pour i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. C'est exactement 10 fois.
Le même programme peut être écrit différemment.
 
Exemple 2
pour i dans [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] : print("Bonjour") Dans l'exemple 2, on liste toutes les valeurs de la variable i pour lesquelles on a besoin de boucler. Avec un grand nombre de valeurs, il est plus pratique d'utiliser la fonction intégrée range().
La séquence de valeurs construite par la fonction range() est finie. La boucle se terminera toujours. 

Fonctionnalités de la boucle for

Comment changer l'étape dans la séquence de valeurs et ne pas repartir de zéro ? La fonction  range(), par défaut, construit une séquence dans laquelle chaque nombre suivant est 1 de plus que le précédent. Vous pouvez utiliser la fonction range dans une autre entrée.

La forme générale de l'entrée de fonction est la suivante : plage([start], stop[, step])
  • start : numéro de début de la séquence.
  • stop : génère des nombres jusqu'au nombre donné, mais non compris.
  • step : la différence entre chaque numéro de la séquence (step)

Tu dois t'en souvenir !
  • Tous les paramètres doivent être des nombres entiers :
  • Chacun des paramètres peut être positif ou négatif.
  • range() (et Python en général) est basé sur l'index 0. Cela signifie que la liste d'index commence à 0, et non à 1. Le dernier entier généré par < code>range() dépend de stop mais ne l'inclura pas. Par exemple, range(0, 5) génère les nombres entiers 0, 1, 2, 3, 4, sans compter 5.


Exemple 1
pour i dans la plage (10, 0, -1) : imprimer(i*i) Le programme affiche les carrés des nombres naturels de 10 à 1 dans l'ordre décroissant
  • 10 : le premier chiffre de la séquence.
  • 0 : numéro de fin de la séquence (n'incluant pas ce numéro).
  • -1 : étape


Exemple 2
pour i dans la plage (0, 101, 5): imprimer (je) Le programme affiche tous les nombres de 0 à 100 par incréments de 5
  • 0 : le premier numéro de la séquence.
  • 101 : numéro de fin de la séquence (n'incluant pas ce numéro).
  • 5 : étape

Répéter N fois

Tous les programmes avec une boucle for que nous avons écrits jusqu'à présent ne peuvent pas être qualifiés d'universels. Parce que nous fixons nous-mêmes le nombre de répétitions du corps de la boucle. 
Mais que se passe-t-il si le nombre de répétitions dépend d'une autre valeur ? Par exemple, l'utilisateur souhaite lui-même définir le nombre de répétitions du cycle.
Que faire dans ce cas ?
Tout est très simple. Au lieu de valeurs numériques de début et de fin, nous pouvons utiliser n'importe quelle variable pouvant être calculée ou définie par l'utilisateur.

Par exemple, nous devons afficher les carrés des nombres de 1 à N, où la valeur de la variable N est saisie au clavier par l'utilisateur.
Le programme ressemblera à ceci : N = int(input()) # saisir N ​​depuis le clavier for i in range(1, N+1): # loop: for all i from 1 to N  - variable i # prendra séquentiellement des valeurs de 1 à N   print("carré", i, "=", i*i)  # affiche le carré d'un nombre Lors de l'entrée dans la boucle, l'instruction d'affectation i = 1 est exécutée, puis la variable i est incrémentée de un à chaque pas (i += 1). La boucle est exécutée tant que la condition i <= N est vraie. Dans le corps de la boucle, la seule instruction de sortie imprime le nombre lui-même et son carré à l'écran selon le format spécifié.
Pour le carré ou d'autres exposants faibles, il est préférable d'utiliser la multiplication.

Exécutez le programme et voyez le résultat de son travail avec différentes valeurs de la variable N.