====== Boucle bornée : pour = for ====== ===== Pseudo-code ===== //Le pseudo-code est une écriture d'un programme dans un langage de programmation presque naturel, sans faire référence à un langage en particulier. Il permet de mettre en avant des structures qui se retrouveront, avec de légères adaptations, dans la plupart des langages.// POUR item DANS ensemble FAIRE instructions FIN POUR Il est également courant de le trouver sous cette forme : POUR i ALLANT DE début À fin FAIRE instructions FIN POUR ==== Syntaxe ==== Il s'agit d'énumérer les éléments d'un ensemble. L'ensemble peut être un tableau, une chaîne de caractère... for item in ensemble: # Indentation (marge à gauche) délimite les instructions # concernées par la boucle # instructions... # fin de l'indentation => les instuctions suivantes # seront exécutées après la fin de la boucle Dans cet exemple, la boucle est déclarée ligne 1 et elle concerne toutes les lignes suivantes avec l'indentation, lignes 2 à 4 qui seront donc répétées. ==== Exemple 1 énumération d'une chaîne de caractères ==== chaine = "souris" lenvers = "" for c in chaine: lenvers = c + lenvers print(lenvers) **Exécution du programme** * ligne 1, ''%%chaine%%'' est initialisé avec ''%%"souris"%%'', * ligne 2, une chaîne de caractère et ''%%lenvers%%'' est initialisé comme chaîne vide. * ligne 3, pour chaque caractère ''%%c%%'' de ''%%"souris"%%'', on exécute la boucle constituée de la seule ligne 4 et consistant à ajouter le caractère ''%%c%%'' au début de ''%%lenvers%%'' * à la première exécution, ''%%c = "s"%%'' et ''%%lenvers%%'' vaut ''%%""%%'' si bien que la nouvelle valeur de ''%%lenvers%%'' sera ''%%"s" + "" = "s"%%'' * à la deuxième exécution, ''%%c = "o"%%'' et ''%%lenvers%%'' vaut ''%%"s"%%'' si bien que la nouvelle valeur de ''%%lenvers%%'' sera ''%%"o" + "s" = "os"%%'' * à la troisième exécution, ''%%c = "u"%%'' et ''%%lenvers%%'' vaut ''%%"os"%%'' si bien que la nouvelle valeur de ''%%lenvers%%'' sera ''%%"u" + "os" = "uos"%%'' * etc. * Quand le dernier caractère de ''%%chaine%%'' a été traité, la boucle se termine et on peut passer à la ligne 5 pour exécuter ''%%print(lenvers)%%'' ce qui affiche ''%%siruos%%''. ==== Exemple 2 énumération des éléments d'un tableau ==== Exemple du calcul de la somme des éléments d'un tableau. tableau = [11, 17, 32, 4] total = 0 for item in tableau: total += item print(total) **Exécution du programme** * La boucle commence ligne 3 et parcours les items contenus dans ''%%tableau%%''. * Chaque boucle verra l'exécution de la ligne 4 sur un nouvel item de ''%%tableau%%'' * La ligne 4 consiste à ajouter ''%%item%%'' à ''%%total%%''. //Rappel :// ''%%total += item%%'' est équivalent à ''%%total = total + item%%'' Un tel code aurait plus d'intérêt dans le cadre d'une fonction : def somme(tableau): total = 0 for item in tableau: total += item return total ==== Exemple 3 énumération entre deux entiers ==== On veut faire la somme des entiers de 1 à 1000. On ne va pas créer manuellement ''tableau = [1, 2, 3...1000]'', il y a beaucoup plus rapide. total = 0 for i in range(1,1001): total += i print(i) La fonction ''%%range%%'' permet d'énumérer des entiers. En indiquant ''range(1, 1001)'', on indique que ''i'' commencera à la valeur 1 et ira jusque 1000. **Important :** il faut bien préciser 1001 comme borne de fin pour aller jusque 1000 inclus. Autrement dit, 1001 est exclus. **Remarque :** si on écrit seulement ''%%range(1000)%%'' c'est équivalent à ''%%range(0,1000)%%''.