Support interactif de la séance

Notebook associé

Le notebook constitue le support principal de cette séance. Il permet de lire les explications, modifier le code et exécuter les cellules pas à pas.

Première utilisation d’un notebook ?
Consultez le mode d’emploi Jupyter.

Toutes les répétitions ne sont pas prévisibles

Avec for, nous savons répéter un traitement un nombre déterminé de fois.

Mais certaines situations ne permettent pas de savoir à l’avance combien de répétitions seront réellement nécessaires.

Par exemple, une saisie peut devoir être redemandée une fois, trois fois ou pas du tout.

Le problème à résoudre

Question de départ. Comment répéter un traitement tant qu’une condition est vraie, sans connaître à l’avance le nombre exact de répétitions ?

Une répétition contrôlée par une condition

Dans une boucle conditionnelle, le programme teste une condition avant de recommencer le traitement.

Si cette condition est vraie, la boucle continue.

Lorsqu’elle devient fausse, la répétition s’arrête.

Python utilise pour cela la structure while.

Faire évoluer les valeurs pendant la boucle

Pour qu’une boucle puisse s’arrêter, la situation doit généralement évoluer pendant son exécution.

Une variable utilisée dans la condition peut donc changer de valeur à chaque passage.

Le notebook permettra d’observer précisément cette évolution.

Le risque de boucle infinie

Si rien ne permet à la condition de devenir fausse, la boucle peut continuer indéfiniment.

Il faudra donc apprendre à vérifier qu’une boucle peut réellement se terminer.

Cette vérification est essentielle lorsqu’on utilise while.

Application : améliorer Deviner un nombre

Dans la version précédente de Deviner un nombre, le joueur disposait d’un nombre fixé de tentatives.

Mais le programme pouvait continuer même après avoir trouvé le nombre secret.

Nous allons maintenant faire dépendre la poursuite du jeu de deux informations :

  • le nombre secret a-t-il été trouvé ?
  • le maximum de tentatives a-t-il été atteint ?

Votre mission

Dans le notebook, vous allez progressivement apprendre à :

  • écrire une boucle while ;
  • identifier sa condition de poursuite ;
  • suivre l’évolution d’une variable pendant la boucle ;
  • reconnaître une boucle infinie ;
  • combiner plusieurs conditions ;
  • améliorer Deviner un nombre pour arrêter le jeu au bon moment.

Construire progressivement un résultat

Dans cette séance, une variable pourra évoluer à chaque passage dans une boucle.

Ce même mécanisme permettra bientôt de construire progressivement des résultats :

  • compter des éléments ;
  • calculer une somme ;
  • mémoriser une information au cours d’un parcours.

À retenir

  • while répète un traitement tant qu’une condition reste vraie.
  • La condition est réévaluée avant chaque nouveau tour.
  • Les valeurs utilisées dans la condition doivent pouvoir évoluer.
  • Une mauvaise condition peut provoquer une boucle infinie.
  • while est adapté lorsque le nombre de répétitions n’est pas nécessairement connu à l’avance.