Structures de contrôle conditionnelles - tant que

Maintenant que nous connaissons les valeurs booléennes, nous pouvons introduire une boucle. Celle-ci nous permet de répéter l’exécution d’un bloc d’instructions.

La boucle while

La boucle tant que est une structure de contrôle qui permet de répéter un ensemble d’instructions tant qu’une condition est vrai.

Voici un premier exemple, il permet de calculer la partie entière inférieure de la racine carrée d’un nombre saisi au clavier.




(python_sqrt)

Voici la forme générale de cette boucle conditionnel.

while condition:
    instructions

On y trouve tout d’abord le mot clef while, la condition et enfin les : indiquant le bloc à suivre. Ce bloc, marqué par l’indentation, est l’ensemble des instructions exécutées tant que la condition est vraie.

Voici un autre exemple. La fonction read_value(n) demande à l’utilisateur une valeur tant que celle ci n’est pas comprise entre 0 et n inclus.




(python_read_value)

Boucle infinie

Le code ci-dessous permet de calculer le logarithme en base 10 d’un nombre. Elle ne fonctionne qu’avec un nombre entier supérieur ou égal à 0. Dans le cas où l’on utilise un nombre négatif, le programme entre dans une boucle infinie et ne termine plus. On le remarque car le navigateur se bloque et finit par demander d’arrêter le script.




(python_log10)

Voici une version corrigé de la fonction pour qu’elle puisse traiter les nombres négatifs sans erreur.




(python_log10_corrected)

L’adaptation ci-dessus prend comme convention qu’un nombre négatif à un logarithme égal à 0. On pourrait préférer la version suivante dans laquelle le type de la valeur de retour n’est pas un entier mais None qui correspond à une absence de valeur.




(python_log10_adapted)

Quitter une boucle prématurément

Il est possible de sortir d’une boucle sans que la condition ne devienne fausse. C’est le rôle de l’instruction break. Au moment de son exécution, la boucle en cours est intérompue. Son utilisation peut parfois simplifier le code.

L’exemple suivant nous permet d’illustrer son fonctionnement. La condition de cette boucle est toujours vrai mais l’exécution se termine malgré tout.




(python_break)

Quelques clarifications

Voici des éléments supplémentaires et des clarifications sur le comportement des fonctions.

Exercices

Opérations simples

Complétez les fonctions ci-dessous afin qu’elles réalisent ce qui est indiqué.




(python_exo1)

Nombres premiers

Complétez le fonction ci-dessous afin qu’elle réalise ce qui est indiqué.




(python_exo2)

Next Section - Approximation de Pi par la méthode de Monte Carlo