Home Python Introduction

Menu principal

Informatique

Mathématiques

Introduction à Python - 5 - Structure de contrôle : WHILE
Informatique - Python
Écrit par Arnaud Kientz   
Index de l'article
Introduction à Python
1 - Généralités
2 - Premiers pas en console
3 - Un premier programme
4 - Structure de contrôle : IF
5 - Structure de contrôle : WHILE
6 - Structure de contrôle : FOR...IN
7 - Synthèse sur les variables
8 - Utilisation des modules
9 - Structure fonctionnelle
10 - Un peu de dessin avec Turtle
11 - Faire une interface graphique avec Tkinter
12 - Quelques exercices de synthèse
Toutes les pages

 

La boucle WHILE

 

On a souvent besoin de répéter une même suite d'instructions, ou des instructions du même type, par exemple si on veut afficher tous les nombres entiers de 1 à 15 un par un. Cela signifie qu'il faudrait effectuer les instructions :

 

print 1
print 2
print 3
print 4
print 5
print 6
print 7
print 8
print 9
print 10
print 11
print 12
print 13
print 14
print 15

 

Assez embêtant de l'écrire tel quel.

Heureusement la boucle while permet cela. La syntaxe est :

while (condition):
instruction 1
instruction 2
...
instruction n
# retour à la ligne pour la suite du programme

 


Tant que la condition est vérifiée, les instructions de 1 à n seront effectuées. Bien faire attention à respecter la même indentation pour chaque instruction dans la boucle. Le retour à la ligne signifie la fin des instructions à répéter dans la boucle while.

 

bouclewhile

 

Avant d'écrire ce genre de boucles, assurez-vous qu'elle n'est pas infinie ! Ou prévoyez un moyen de sortir à un moment donnée de sortir de la boucle.

Par exemple, le code suivant lancera un programme qui ne s'arrêtera jamais :

 

 

1
2
3
n = 5
while (n > 0):
print n

 

Le problème est que la valeur de n ne change pas, et donc la condition n > 0 est toujours vérifiée, la boucle ne se finit jamais.

Pour corriger, il faut qu'à un moment donné n devienne négatif ou nul, voici un exemple de solution :

 

 

1
2
3
4
n = 5
while (n > 0):
print n
n = n - 1

La valeur de n baisse d'un cran à chaque fois que la boucle s'exécute, et atteindra un moment ou un autre 0.

D'ailleurs, combien de fois va-t-on avoir un résultat affiché dans le code ci-dessus ?

 

Exercices :


  1. Réécrire le programme calculant les intérêts gagnés au bout d'un certain nombre d'années d'une somme sur à compte à 3%, à l'aide d'une boucle while.
  2. Ecrire un programme calculant la factorielle d'un nombre. Pour rappel, la factorielle d'un nombre n est n! = n*(n-1)*...*2*1.
    Par exemple : 10! = 10*9*8*7*6*5*4*3*2*1 = 3 628 800.
  3. Les tables de multiplication :
  • Afficher les 100 premiers nombres de la table de 7, avec une étoile pour les multiples de 3.
  • Afficher la table de multiplication complète jusqu'à 10.

Les résultats pourront être sous la forme suivante :

 

table-multiplication

 

  1. Réservé aux connaisseurs : conversions binaire ←→ décimal :
    • Ecrire un programme effectuant la conversion binaire --> décimal ( voir rappels sur les nombres binaires en cas de besoin),
    • Ecrire un programme effectuant la conversion décimal --> binaire ( c'est plus difficile, donc voici une indication : il faut effectuer des divisions entières successives par le nombre ..... ).
    • Fusionner les deux programmes précédents en un unique avec menu au départ permettant le choix de la conversion à faire :

binaire-dcimal

 

 



Mise à jour le Jeudi, 06 Mai 2010 12:09