====== 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)%%''.