L'instruction "while".
Cette instruction est une boucle, c'est-à-dire qu'elle permet de répéter plusieurs fois un bloc d'instructions (en boucle).
"while" exécute des commandes tant qu'une ou plusieurs conditions sont vraies.
while condition:
 commandes
par exemple :
i = 0
while i < 5:
 i = i + 1
 print(i)
donne à l'exécution :
1 2 3 4 5
En effet, la seconde ligne indique à Python qu'il lui faut "répéter continuellement le bloc d'instructions qui suit, tant que" le contenu de la variable "a" reste inférieur à "5".
Comme l'instruction "codice_1", l'instruction "codice_2" amorce une "instruction composée". Le double point à la fin de la ligne introduit le bloc d'instructions à répéter, lequel doit obligatoirement se trouver en retrait.
Nous avons ainsi construit notre première "boucle de programmation", laquelle répète un certain nombre de fois le bloc d'instructions indentées. Voici comment cela fonctionne :
Remarques.
Exemple de (à éviter) :
Exemple : élaboration d'une table de multiplication.
»> a = 0
»> while a < 12:
... a = a + 1
... print(a, a**2 , a**3)
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
11 121 1331
12 144 1728
On obtient donc la liste des carrés et des cubes des nombres de 1 à 12.
Construction d'une suite mathématique.
Le petit programme ci-dessous permet d'afficher les dix premiers termes d'une suite appelée « ». Il s'agit d'une suite de nombres, dont chaque terme est égal à la somme des deux termes qui le précèdent. Analysez ce programme (qui utilise judicieusement l"'affectation multiple"). Décrivez le mieux possible le rôle de chacune des instructions.
Lorsque vous lancez l'exécution de ce programme, vous obtenez :
Les termes de la suite de Fibonacci sont affichés sur la même ligne. Vous obtenez ce résultat grâce à la virgule placée à la fin de la ligne qui contient l'instruction "print". Si vous supprimez cette virgule, les nombres seront affichés l'un en-dessous de l'autre.
Lorsque vous examinez un problème de cette nature, vous devez considérer les lignes d'instruction, bien entendu, mais surtout décortiquer les "états successifs des différentes variables" impliquées dans la boucle. Cela n'est pas toujours facile, loin de là. Pour vous aider à y voir plus clair, prenez la peine de dessiner sur papier une table d'états similaire à celle que nous reproduisons ci-dessous pour notre programme « suite de Fibonacci » :
Dans une telle table, on effectue en quelque sorte « à la main » le travail de l'ordinateur, en indiquant ligne par ligne les valeurs que prendront chacune des variables au fur et à mesure des itérations successives. On commence par inscrire en haut du tableau les noms des variables concernées. Sur la ligne suivante, les valeurs initiales de ces variables (valeurs qu'elles possèdent avant le démarrage de la boucle). Enfin, tout en bas du tableau, les expressions utilisées dans la boucle pour modifier l'état de chaque variable à chaque itération.
On remplit alors quelques lignes correspondant aux premières itérations. Pour établir les valeurs d'une ligne, il suffit d'appliquer à celles de la ligne précédente, l'expression de remplacement qui se trouve en bas de chaque colonne. On vérifie ainsi que l'on obtient bien la suite recherchée. Si ce n'est pas le cas, il faut essayer d'autres expressions de remplacement.
L'instruction "for".
La boucle "for" permet d'exécuter une itération un certain nombre de fois :
»> for i in range(5):
... print(i)
0
1
2
3
4
Pour le "" (répétition pour chaque élément d'un itérable) :
»> for champ in ['champ1', 'champ2', 'champ3']: 
... print(champ)
champ1
champ2
champ3
Pour avoir les clés avec les valeurs :
for key in dict:
... print(key, '->', dict[key])
Les instructions "break", "continue".
L'instruction "break" permet d'arrêter une boucle avant sa fin. L'instruction "continue" est similaire, mais au lieu d'interrompre la boucle, elle permet de passer à l'itération suivante.
for i in range(5):
 if i==3:
 break
 print i
affichera
0 1 2 
tandis que
for i in range(5):
 if i==3:
 continue
 print i
affichera 
0 1 2 4