while
et for
)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 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.
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.
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
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,'-')
(source python.lycee.fr)