Python (1) : Boucles (instructions while et for)

Instruction Tant que/while (boucle non bornée)

Le principe de la boucle while, c’est d’exécuter un bloc d’instructions tant que (while in english) une condition donnée est vraie. Encore une fois commençons par un exemple :

>>> i = 1
>>> while i <= 5:
... print(i)
... i = i + 1
...
1
2
3
4
5

Ici tant que (while) la condition (i\leq5) est vraie, le bloc d’instructions (il y en a deux dans notre cas) est executé.

Regardons ce code pas à pas pour bien comprendre ce qui se passe.

Regardons ce code pas à pas pour bien comprendre ce qui se passe.

1i = 1
2 while i <= 5:
3     print(i)
4     i = i + 1
5 print('Fini !')
Etape 1 sur 18
ligne qui vient juste d'être exécutée

prochaine ligne à exécuter

Sortie du programme:
Contexte d'évaluation
Objets

Attention !

La deuxième instruction i=i+1 est primordiale car elle assure que l’on va sortir de la boucle. En effet, ce qu’il faut éviter avec les boucles tant_que, c’est de construire une boucle sans fin. C’est ce qui peut se produire si la condition du while n’est jamais vérifiée.

Pour savoir combien de fois la boucle while est executée, il peut être utile d’utiliser une variable qui servira de compteur, c’est-à-dire une variable (qu’il ne faut pas oublier d’initialiser) et incrémentée de 1 dans le bloc d’instructions.

Instruction Pour/for (boucle bornée)

Lorsque l’on souhaite répéter un nombre donné de fois la même instruction ou le même bloc d’instructions, la commande for est la plus appropriée.

Admettons que l’on veuille afficher 5 fois le mot blabla. Voici ce que l’on peut faire.

>>> for i in range(5): # pour i allant de 0 à 4
... print("blabla")
...
blabla
blabla
blabla
blabla
blabla

Si on veut afficher les carrés des entiers de 1 à 7 :

>>> for i in range(1, 8): # pour i allant de 1 à 7
... print(i**2)
...
1
4
9
16
25
36
49

La même chose mais dans l'ordre inverse :

>>> for i in reversed(range(1, 8)): # pour i allant de 7 à 1
... print(i**2)
...
49
36
25
16
9
4
1

Parcourir une chaîne de caractères

Regardons pour commencer comment passer en revue tous les caractères d'une chaîne de caractères.

mot="Bonjour"
for ind in range(len(mot)): # La variable ind parcourt les entiers de 0 au rang de la dernière lettre du mot.
    print(mot[ind],'-')

Unne variante sans utiliser d'indice de parcours :

mot="Bonjour"
for c in mot): # La variable c parcourt les lettres du mot.
    print(c,'-')

CCBYNCSA"(source python.lycee.fr)

Auteurs : Kamel Naroun et M. Gragnic -2011 (Modifié C. Béasse - Février 2019)