P1.2 Premières boucles

Les boucles en python

première boucle

Voici un code très simple :

Exemple

Mais à quoi sert la variable i ? En fait, dans le cas de ce code très simple, i ne sert à rien ! i est un compteur de la boucle : une variable qui augmente de 1 à chaque passage. Au départ, i vaut 0, puis 1, puis 2.

Vérifions cela, en demandant d'afficher la valeur de i dans la boucle :

Exemple

Et une fois sorti de la boucle, est-ce que i vaut quelque chose ? Regardons !

Exemple
Avec une variable définie en dehors de la boucle

Souvent une boucle va effectuer des opération en utilisant des variables qui ont déjà une valeur en dehors de cette boucle, et qui seront modifiées durant l'exécution de la boucle.

Voyons un exemple simple :

Exemple

Avant le début de la boucle, a vaut 1.
Au premier passage dans la boucle, a=a+1 (donc a vaut 2) avant qu'on affiche sa valeur.
Au second passage dans la boucle, a=a+1 (donc a vaut 3) avant qu'on affiche sa valeur.
Au 3ème passage dans la boucle, a=a+1 (donc a vaut 4) avant qu'on affiche sa valeur.
A la sortie de la boucle a vaut toujours 4 (on ne l'a pas modifiée).

Attention !

Regardons ce code, très légèrement différent du précédent ;

Exemple

Cette fois, on affiche la valeur de a AVANT de l'augmenter. Du coup, au 1er passage, a vaut 1 et on fait a=a+1 après le print.
Du coup, au 3ème passage on affichera a qui vaut 3 mais on ajoutera encore 1 avant de sortir de la boucle.

Exercice mêlé : code en bouillie
Remet les lignes dans le bon ordre, ce code doit afficher les multiples de 10 de 10 à 100.
  • a = a + 10
  • a = 10
  • print(a)
  • print(a)
  • for i in range(9):

Les accumulateurs - La règle des 3I

Dans de nombreux cas, une boucle est accompagnée d'un accumulateur qui suit la règle des 3i.

L'accumulateur est la variable qui nous sert à calculer quelques chose. Par exemple, pour calculer la somme des entiers de 1 à 10, je défini une variable, que je peux appeler somme, qui à la fin de la boucle sera égale au résultat souhaité.

Pour faire cela je dois :

  1. Initialisation :Avant la boucle, je met somme à 0 ← choix de la valeur de départ
  2. Itération On va ajouter chaque entier en allant de 1 à 10← choix des bornes de la boucle de .. à ...
  3. Instructions : Dans la boucle, j'ajoute i à la somme : somme = somme + i← que doit on faire à chaque itération
Exemple
Exemple d'utilisation d'un accumulateur : faire la somme des valeurs.

L'initialisation n'est pas toujours mettre à 0. Par exemple, si je veux calculer le produit des entiers de 1 à 10:

  • Initialisation : je vais initialiser une variable (cette fois ci, je l'appellerais produit mais ce n'est évidement pas obligé de la nommer ainsi...). produit = 1
  • Itérations Les bornes seront bien les mêmes, je vais de 1 à 10
  • Instructions dans la boucle calculera produit=produit*i.
Exemple
Exemple d'utilisation d'un accumulateur : faire un produit valeurs.

Attention : l'initialisation est différente, on a initialisé à 1, pas à 0. Si j'initialise produit à 0, à la première itération je vais calculer 0*1 qui fait 0, puis à la 2eme 0*2 etc....
Ici la produit doit donc être initialisé à 1 (avant la boucle bien entendu) .

Regardez le code ci-dessous et essayez de prévoir le résultat, puis exécutez le.

Exemple
Produit des entiers de 1 à 5
Exercice à choix multiple
Le message commence par NameError, cela signifie que :
Correct !