C’est le cours python numéro 8 de la série des cours d’initiation à python.
L’une des caractéristiques d’un ordinateur est la rapidité et la précision dans l’exécution d’actions répétitives : ce qui ennuierait à mort un être humain, le conduirait à perdre sa concentration et à commettre des erreurs, est fait sans sourciller par un ordinateur, qui peut répéter un bloc de milliards d’instructions. de fois sans se fatiguer. Dans les langages de programmation, il y a toujours des instructions pour obtenir des boucles (en anglais : loops).
Une boucle est un bloc d’instructions (toujours reconnu par Python grâce à l’indentation) qui peut être répété plusieurs fois.
Le contrôle du nombre de répétitions d’une boucle sera pris en charge par une instruction de contrôle de flux dédiée, qui déterminera quand la boucle doit être quittée (c’est-à-dire continuer avec les instructions suivantes). Si nous commettons une erreur dans cette instruction, nous pouvons entrer dans une boucle sans fin (en anglais : “endless loop”) c’est-à-dire une boucle qui se répète indéfiniment : c’est une erreur de programmation courante qui provoque généralement le “crash” du programme. Si cela nous arrive en Python, nous pouvons appuyer simultanément sur Control C pour terminer le programme “par force brute”.
L’instruction
NOUVEAU PROGRAMME : test_while.py
Ouvrez l’éditeur et tapez ce nouvel exemple (vous pouvez omettre les commentaires, qui ne servent qu’à expliquer ce que fait le programme) :
s = "" # chaîne vide : utilisée pour initialiser la variable s while s! = "mom": # while avec l'expression de contrôle s = input ("Type 'mom'") # c'est le bloc à répéter print ("Bravo!") # Quittez la boucle ici
Essayez d’exécuter le programme, qui vous demandera d’écrire “maman”. Tapez un autre mot deux ou trois fois et vous verrez que le programme vous demandera toujours la même chose. Ce n’est que lorsque vous écrivez exactement “maman” (avec toutes les lettres minuscules) que le programme vous dira “Bravo !”
L’instruction while permet de répéter un bloc de lignes tant qu’une condition de contrôle (expression booléenne) reste vraie. Lorsque le programme atteint le while, il évalue l’expression : si elle est vraie, elle entre dans la boucle (c’est-à-dire dans une série de lignes indentées comme dans le if) ; à la fin de l’indentation, il revient au while et réévalue l’expression : si elle est toujours vraie, il réexécute la boucle et ainsi de suite. Lorsque l’expression devient fausse, le programme quitte la boucle et continue avec la première ligne au même niveau d’indentation que le while.
Ainsi, le programme fonctionne comme ceci : nous affectons d’abord la chaîne vide à s. Dans la deuxième ligne, le while demande s’il est différent de “mom”: puisque c’est vrai, le programme entre dans la boucle (c’est-à-dire la troisième ligne indentée). Ceci est répété tant que s est différent de “mom”, et n’est terminé que lorsque la condition de contrôle devient fausse (c’est-à-dire lorsque s devient égal à “mom”).
Essayez de supprimer la première ligne : que se passe-t-il ? Vous obtiendrez une NameError car dans l’expression s!= “Mom” Python trouve la variable s non encore définie (rappelez-vous ceci). Essayez plutôt de remplacer la première ligne par celle-ci
s = “maman”:
maintenant, à la place, le programme écrira directement “Bravo!” : en fait, le premier while trouve l’expression booléenne s! = “mom” fausse et n’entre pas du tout dans la boucle.
Avant d’entrer dans une boucle while il faut que les variables apparaissant dans la condition de contrôle soient déjà définies (sinon vous obtenez une erreur). Si la condition est fausse à l’entrée du cycle, le cycle est complètement sauté.
NOUVEAU PROGRAMME : response.py
Le while et le if nous permettent déjà de programmer un jeu simple. Pour l’instant, essayez de ne pas utiliser de copier-coller : il est communément admis qu’écrire les lignes une à une facilite la compréhension du programme ; éventuellement, vous pouvez sauter les commentaires.
de l'importation aléatoire * # sera expliqué plus tard graine () # idem num = randrange (1, 21) # cette instruction génère un nombre aléatoire de 1 à 20 : il va falloir le deviner print ("J'ai pensé à un nombre de 1 à 20. Essayez de le deviner!") my_num = -1 # initialise my_num à une valeur bien différente de num ... while my_num! = num: # ... donc la première fois il entre définitivement dans le while my_num = int (input ("???")) # ici nous introduisons notre tentative (my_num) si mon_num <num : print ("Trop bas") elif mon_num>num : impression ("Trop haut") imprimer ("Vous l'avez deviné !")
Essayez d’exécuter le programme et de deviner le nombre ; puis essayez de comprendre quelle est la fonction de chaque ligne. Ce programme peut servir de base à d’autres développements :
Parfois, nous savons exactement avant la boucle combien de fois nous devrons l’exécuter (par exemple, si nous devons imprimer 10 lignes de texte, …). Dans ces cas on utilise généralement une autre instruction, le pour, mais à des fins didactiques on utilisera une construction équivalente qui nous facilitera alors la compréhension de l’autre instruction.
Une variable de compteur est initialisée (généralement à 0) avant la boucle et est incrémentée à chaque exécution de la boucle. La condition de vérification entraîne l’exécution de la boucle jusqu’à ce que la variable atteigne la valeur souhaitée.
Voyons un exemple :
NOUVEAU PROGRAMME : tables de multiplication.py
Commençons par un programme qui imprime les chiffres de 0 à 9.
i = 0 # initialise le compteur pendant que je <10 : imprimer (je) i + = 1 # incrémente le compteur (c'est-à-dire : i = i + 1)
Le while est répété exactement 10 fois : i commence à 0 et est incrémenté de 1 à chaque fois ; il sera quitté lorsque i deviendra 10 (c’est-à-dire que i <10 sera faux). Dans l’usage courant, si on doit répéter une boucle 100 fois, le compteur ira de 0 à 99, et donc la condition de vérification sera tant que i <100 : cette tradition vient du langage C.
Modifions temporairement le programme comme ceci et lançons-le :
i = 0
while i < 100:
print("J'AIME JULIETTE")
i += 1
Revenons maintenant à notre programme et voyons les exercices.
L’écart en pourcentage permet de comparer une valeur réelle par rapport à une valeur attendue,…
Les écarts sur charges fixes permettent d'analyser les différences entre les charges fixes budgétées et…
L’écart-type est une mesure de la dispersion des données autour de la moyenne. Excel propose…
Exercice 1 : Calcul des Écarts sur Volume et Prix Contexte :Une entreprise a prévu…
1. Généralités sur le Contrôle Budgétaire Question 1 : Quel est l’objectif principal du contrôle…
Voici un QCM Contrôle de Gestion - Pilotage de la Performance bien conçu sur le…
This website uses cookies.