15. Attendre - while
¶
Dans ce chapitre, nous découvrons un deuxième type de boucle, la boucle while
. Elle est souvent utilisée pour attendre quelque chose. Nous allons voir que :
la boucle
while
répète aussi longtemps qu’une condition est vraie,la fonction
sleep()
permet d’attendre et ralentir le programme,le mot-clé
break
permet de sortir de la boucle.
Compteur à rebours¶
On peut utiliser la boucle while
pour créer un compteur à rebours.
Pour attendre une seconde, la fonction sleep()
du module time
est importée.
Lister des noms¶
Nous utilisons une boucle while
pour demander des noms à l’utilisateur.
On ne peut pas savoir à l’avance combien de noms il y aura, donc ici nous ne pouvons pas utiliser la boucle for
. Nous prenons comme condition de terminaison une réponse avec une chaîne vide (''
).
La convention est d’utiliser des noms au pluriel (noms
) pour désigner la liste et le même nom au singulier (nom
) pour désigner un de ses éléments.
Exercice : Entrez les noms de 3-4 de vos amis.
Faire une somme¶
Nous utilisons une boucle while
pour demander des nombres à l’utilisateur.
On ne peut pas savoir à l’avance combien de nombres il y aura, et donc nous ne pouvons pas utiliser la boucle for
. Nous prenons comme condition de terminaison une réponse avec une chaîne vide (''
).
Au lieu d’écrire while x != '':
nous pouvons simplifier vers while x:
.
La raison est que la chaîne vide est associée à False
et toute autre chaîne non vide est associée à True
.
Exercice : Entrez les frais de vos 3 derniers achats.
Faire une moyenne¶
Nous utilisons une boucle while
pour demander des nombres à l’utilisateur.
On ne peut pas savoir à l’avance combien de nombres il y aura, et donc nous ne pouvons pas utiliser la boucle for
. Nous prenons comme condition de terminaison une réponse avec une chaîne vide (''
).
Exercice : Entrez vos notes de français.
Deviner un nombre¶
On peut aussi utiliser une boucle while
pour deviner un nombre.
Ici on importe la fonction randint()
du module random
.
Elle fournit un nombre entier aléatoire entre deux bornes (1, 99).
La fonction input()
ne retourne que le type str
.
La fonction int()
transforme le type string (chaîne) en entier (integer).
Exercice : Quelle est la meilleure stratégie pour deviner un nombre ?
Factoriser¶
Le programme va factoriser le nombre que vous entrez
En code binaire¶
Le programme transforme l’entier en code binaire.
Indentation¶
On appelle bloc une ou plusieurs lignes d’instructions qui forment un ensemble.
Dans les langages C ou JavaScript un bloc est délimité avec des accolades {...}
.
L’indentation est encouragée, mais reste optionnelle.
En Python, l’indentation est obligatoire. C’est la façon officielle de designer un bloc. Ceci présente deux avantages :
plus besoin d’accolades pour délimiter un bloc,
la structure des blocs est claire et visuelle.
Une indentation est un retrait du code par rapport à la marge gauche de 4 caractères. Elle peut être insérée avec la touche tabulateur TAB (symbolisée par une flèche à gauche du clavier).
Un bloc est défini comme un ensemble de lignes de même indentation. Des blocs marqués par une indentation se trouvent après les mots-clés pour :
la définition de fonction (
def
),l’instruction conditionnelle (
if-elif-else
),la boucle (
for/while
).
En Python, le symbole :
en fin de ligne introduit un sous-bloc qui doit être indenté.
Voici 5 sous-blocs à la suite des mots-clés def
, if
, elif
, else
, for
:
Dans l’exemple suivant, nous avons une boucle qui fait trois itérations.
Les deux instructions print()
font partie du bloc de la boucle.
Exercice : Enlevez l’indentation de l’instruction print('-' * 11)
.
Sortir avec break
¶
Le mot-clé break
, seul sur une ligne, permet de sortir d’une boucle.
Souvent cette méthode est utilisée pour sortir d’une boucle infinie.