LANGAGE PYTHON
Structures répétitives: les boucles
Les boucles sont utilisées pour répéter un certain nombre de fois un ensemble d'instructions ou les répéter tant que certaines conditions sont vraies.
Partie A:
- Boucle for...in range (...) dite boucle bornée
La boucle basée sur l'instruction for ... in range(...) est utilisée quand on connaît à l'avance le nombre de fois qu'une boucle doit s'exécuter.
Le principe est d'utiliser la fonction range(...) qui définit une suite de nombres, le programme bouclera tant qu'il restera un nombre à générer de la suite.
Pour définir la suite, la fonction range prend trois paramètres dans ses parenthèses ( à la place des pointillés) , le premier paramètre est le premier nombre de la suite, le second paramètre est la valeur d'arrêt de la boucle ( quand la suite atteint ce nombre la boucle s'arrête), le troisième paramètre est le pas entre d'évolution entre deux valeurs, exemple:
for _ in range (0, 9, 1) va générer la suite 0,1,2,3,4,5,6,7,8 soit 9 tours de boucle. La plage de la suite est [0, 9[ avec un pas de 1
Quand la valeur de départ est 0 et que le pas est 1, on peut enlever des parenthèses la valeur de départ et le pas, la boucle peut s'écrire for _ in range(9)
Si le premier nombre n'est pas 0 et si le pas n'est pas 1, il faut les préciser, exemple:
for _ in range (1, 10, 2) va générer la suite 1,3,5,7,9 soit 5 tours de boucle. La plage de la suite est [1, 10[ avec un pas de 2
On peut associer une variable pour "voir" chaque nombre de la suite. Cette variable se place entre les mots clés for et in.
Ce que l'on veut répéter en boucle doit être décalé par rapport au for, par exemple ci-dessous l'instruction print(..)
# variable x sera dans la plage [0, 9[ avec pas d'évolution de 1
for x in range (9):
print(x)
Il est possible d'afficher la suite de nombres "sur une seule ligne" au lieu de "à la ligne", pour çà on renseigne un paramètre appelé end placé en dernier paramètre dans le print et on l'associe à un caractère délimiteur:
Exemples:
# x est dans la plage [0, 9[ avec pas de 1
for x in range (9):
# le caractère délimiteur est ";"
print( x, end = ";" )
donnera:
# x est dans la plage [0, 9[ avec pas de 1
for x in range (9):
# le caractère délimiteur est ":"
print( x, end = ":" )
donnera:
Si on veut commencer à 1, on doit le préciser dans le range en premier paramètre à 1 :
# x est maintenant dans la plage [1, 9[ avec un pas de 1
for x in range (1, 9):
print( x, end = ";" )
donnera:
Si on change le pas d'évolution, on doit ajouter le troisième paramètre:
# x est dans la plage [1, 9[ avec pas de 2
for x in range (1, 9, 2):
print( x, end = ";" )
donnera:
On peut aussi décompter avec une boucle:
# x est dans la plage [9, 1[ avec pas de -1
for x in range (9, 1, -1):
print( x, end = ";" )
# x est dans la plage [9, -1[ avec pas de -1
for x in range (9, -1, -1):
print( x, end = ";" )
Exercice 4 du niveau 1
4.1 Écrire un programme, avec une boucle for, qui permet d'obtenir le rendu suivant:
4.2 Écrire un programme, avec une boucle for, qui permet d'obtenir le rendu suivant:
Partie B
Avec une boucle on peut créer un accumulateur, c'est à dire une variable associée à une valeur qui augmente.
somme = somme + 1 veut dire: nouvelle valeur associée à la variable somme = ancienne valeur associée à la variable somme + 1
ce qui peut aussi s'écrire somme +=1
# la variable somme est associée au nombre 0
somme = 0
print("au départ la variable somme est associée au nombre:", somme)
for x in range(1,4):
# la variable somme augmente de 1 à chaque tour de boucle:
somme += 1
print( "la variable somme est maintenant associée au nombre: ", somme)
donnera:
somme = 0
print("au départ la variable somme est associée au nombre:", somme)
for x in range(1,4):
# la variable somme augmente de x à chaque tour de boucle:
somme = somme + x
print( "la variable somme est maintenant associée au nombre: ", somme)
donnera:
Voici un programme qui fait la somme de notes saisies au clavier:
somme = 0
# la variable notes contient le nombre de notes:
max = eval( input("Entrez combien vous avez de notes \n"))
# récupération des notes
for x in range(1, max+1):
# on demande la note et on l'associe à la variable note:
note = eval( input("entrez votre note: \n"))
# on l'ajoute le nombre associé à note à la somme précédente:
somme = somme + note
# on affiche la valeur de la somme:
print( "la variable somme est maintenant associée au nombre: ", somme)
Exécution:
Exercice 5 du niveau 1
Ajouter au code précédent une variable appelée moyenne associée au nombre 0 que vous placerez avant la boucle.
Modifier le code pour qu'il utilise la variable moyenne et la valeur finale associée à la variable somme pour calculer la moyenne des notes saisies et l'affiche à l'écran.
Partie C: Boucle while
il y a des circonstances où on ne sait pas à l'avance combien de fois il va falloir tourner en boucle, dans ce cas là on utilise une boucle while associée à une condition, tant que cette condition sera vraie, le programme tournera en boucle.
lettre = input("entrer un caractère du clavier")
# tant que la variable lettre n'est pas associée au caractère m:
while lettre != 'm':
print("ce n'est pas le caractère attendu")
lettre = input("entrer un autre caractère du clavier")
print("au revoir")
Ci-dessus tant que l'utilisateur saisi un autre caractère que m, le programme tourne en boucle parce que la condition "lettre est différent de m est Vraie" .
Exercice 6 du niveau 1
Ecrire un programme avec une boucle while qui demande à l'utilisateur "voulez-vous continuer ( répondre oui ou non)? ", tant que la réponse sera différente de non, le programme affichera "on continue alors" et reposera la question "voulez-vous continuer ( répondre oui ou non)? ".
Si l'utilisateur répond non, la boucle s'arrête et le programme affiche "au revoir" et se termine
Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub facile