Python La structure itérative Lycée Louis Vincent SEANCE 4 Python La structure itérative Lundi 30 septembre 2013
La structure itérative Contenu de la séance 4 : La structure itérative La boucle for. La boucle while. Un premier jeu ! Lundi 30 septembre 2013
Itération ou boucle L’itération a pour but d’exécuter plusieurs fois une suite d’instructions. Il y a deux catégories d’itérations : Itération déterministe : Le nombre de répétitions de la suite d’instructions est défini à l’entrée dans l’itération. Itération indéterministe : une expression booléenne est évaluée avant chaque répétition d’instructions et détermine si les instructions sont exécutées. Lundi 30 septembre 2013
Itération déterministe Le nombre de répétitions de la suite d’instructions est connu dès le départ. C’est ce qui se passe dans des exemples comme : Donner les carrés et cubes des nombres impairs entre 0 et 20. Donner les termes de rang 4 à 11 d’une suite géométrique de raison 3 et de premier terme u0 = 4. Une itération déterministe s’effectue en trois phases. L’initialisation, Le traitement itéré, Le traitement terminal. On introduit une variable correspondant à un compteur qui contrôle le nombre de répétition. Syntaxe : pour identifiant de valeur début à valeur fin faire instruction(s) correspondant au traitement itéré finpour Lundi 30 septembre 2013
Itération déterministe Traduction Python Algorithme Codage Python Initialisation Pour identifiant de valdeb à valfin faire Instruction(s) Finpour Traitement terminal <suite d’instructions> for identifiant in range(valdeb, valfin+1): Lundi 30 septembre 2013
Itération déterministe La boucle for : Elle permet de répéter un bloc d’instructions un nombre de fois donné avant de commencer. On aura ainsi des boucles du style : Pour i entre 1 et n faire … Pour i entre 1 et n avec un pas de p faire … Pour x dans la chaîne ch … Pour x dans la liste L … (on verra les liste plus tard) Lundi 30 septembre 2013
Itération déterministe La fonction range() : On utilise la fonction (on y viendra la séance prochaine) intégrée range(). Elle renvoie une séquence d’entiers en progression arithmétique. Exemples : pour l’affichage, on convertit cette séquence en liste, sinon rien n’est affiché. Lundi 30 septembre 2013
Itération déterministe Le testeur in : in permet de vérifier l’appartenance d’un élément à une liste, à une chaîne … Exemple : faire afficher les nombres impairs jusque 10. Lundi 30 septembre 2013
Itération déterministe Exemples : Exemple 1 : Donner les carrés et cubes des nombres impairs entre 0 et 10. Exemple 2 : Donner les termes de rang 4 à 11 d’une suite géométrique de raison 3 et de premier terme u0 = 4. Lundi 30 septembre 2013
Itération indéterministe Le nombre de répétitions n’est pas connu mais dépend de l’évaluation d’une expression booléenne. Par exemple, pour déterminer la limite d’une suite si elle est finie à 10-3 près. Syntaxe : tant que expression booléenne faire instruction(s) correspondant au traitement itéré fintant que Donc tant que l’expression est vrai (condition de continuation), les instructions sont répétées. Lundi 30 septembre 2013
Itération indéterministe Traduction Python Algorithme Codage Python Initialisation tant que expression_booléenne faire Instruction(s) fintant que Traitement terminal <suite d’instructions> while expression_booléenne : Le test de la condition est effectué avant d’entrer dans la boucle. Par conséquent, si la condition n’est pas vérifiée avant l’entrée dans la boucle, on y entre pas, les instructions à l’intérieur de la boucle ne sont pas effectuées et on passe à l’instruction suivant la boucle. Lundi 30 septembre 2013
Itération indéterministe Exemple : On considère la suite (un) de terme général : un = 3𝑛 − 1 4𝑛+2 . On peut démontrer que la limite de la suite est 0,75. A partir de quel rang, la distance de un avec 0,75 est inférieur à 10-3. Lundi 30 septembre 2013
Remarque Toute boucle for peut être remplacée par une boucle while. Traitement: Pour i allant de a à b avec un pas de c faire … FinPour Fin traitement Boucle while Traitement : i a Tant que i ≤ b faire … i i + c FinTant que Fin traitement Lundi 30 septembre 2013
Un jeu Règles: Choisir un nombre entre 0 et 100. Le voisin doit le trouver sachant qu’à chaque proposition de sa part, il aura comme indications : Bravo, c’est gagné ! C’est trop petit C’est trop grand 1°) Ecrire l’algorithme pour ce jeu. 2°) Programmer ce jeu. 3°) Variantes possibles : a) Compter le nombre de coups. b) C’est l’ordinateur qui choisit le nombre au hasard grâce à en python, la fonction randrange(valdeb,valfin) est importée de la bibliothèque random. c) Possibilité de quitter le jeu avant la fin et obtenir la réponse. Lundi 30 septembre 2013
Ce que je dois retenir Structure itérative : Commandes Effet for ident in range (valdeb,valfin+1): Instructions while expression_booléenne: Ident commence à valdeb et tant que ident n’a pas la valeur valfin, les instructions sont reproduites. Tant que le booléen est vrai, les instructions sont reproduites. Lundi 30 septembre 2013