Les boucles

Apprendre à programmer en python

python

Une boucle permet d’exécuter une portion de code plusieurs fois de suite.

L’instruction : while

python_while

Syntaxe

while expression:		# ne pas oublier le signe de ponctuation ':'
    bloc d'instructions		# attention à l'indentation
# suite du programme

Si l’expression est vraie (True) le bloc d’instructions est exécuté, puis l’expression est à nouveau évaluée. Le cycle continue jusqu’à ce que l’expression soit fausse (False) : on passe alors à la suite du programme.

Exemple : un script qui compte de 1 à 4

compteur = 1		# initialisation de la variable de comptage
while compteur < 5:
    # ce bloc est exécuté tant que la condition (compteur < 5) est vraie
    print(compteur, compteur < 5)
    compteur = compteur + 1    # incrémentation du compteur,ou  compteur += 1

print("Fin de la boucle")
>>>
1 True
2 True
3 True
4 True
Fin de la boucle

L’instruction : for

Syntaxe

for élément in séquence :
    bloc d'instructions
# suite du programme

Les éléments de la séquence sont issus d’une chaîne de caractères ou bien d’une liste.

Exemple avec une séquence de caractères

chaine = 'Bonsoir'
for lettre in chaine:		# lettre est la variable d'itération
    print(lettre)
print("Fin de la boucle")

La variable lettre est initialisée avec le premier élément de la séquence ('B'). Le bloc d’instructions est alors exécuté. Puis la variable lettre est mise à jour avec le second élément de la séquence ('o') et le bloc d’instructions à nouveau exécuté… Le bloc d’instructions est exécuté une dernière fois lorsqu’on arrive au dernier élément de la séquence ('r') :

>>>
B
o
n
s
o
i
r
Fin de la boucle

Exemple avec les éléments d’une liste

maliste = ['Pierre', 67.5, 18]
for element in maliste:
    print(element)
print("Fin de la boucle")

Là, on affiche dans l’ordre les éléments de la liste :

Pierre
67.5
18
Fin de la boucle

Fonction : range()

L’association avec la fonction range() est très utile pour créer des séquences automatiques de nombres entiers :

for i in range(5,9):	# pour i allant de [5;9[ 9 est exclu
    print("La valeur de i est :",i)
print("Fin de la boucle")
>>>
La valeur de i est :1
La valeur de i est :2
La valeur de i est :3
La valeur de i est :4
Fin de la boucle

Entraînement 1 :

Que font les codes suivants :

  • for i in range(11):
        print("La valeur de i est :",i)

  • for i in range(0,20,2):
        print("La valeur de i est :",i)

Astuce

Si vous connaissez le nombre de boucles à effectuer, utiliser une boucle for. Autrement, utiliser une boucle while (notamment pour faire des boucles sans fin).

Entraînement 2 :

Écrire un script qui affiche la table de multiplication de 4 (de 1 à 10)

Voir une solution

Entraînement 3 :

Initialisez deux entiers : a = 0 et b = 10.
Écrire une boucle affichant et incrémentant la valeur de a tant qu’elle reste inférieure à celle de b.

Entraînement 4 :

Initialisez deux entiers : a = 0 et b = 10.
Écrire une autre boucle décrémentant la valeur de b et affichant sa valeur si elle est impaire. Boucler tant que b n’est pas nul.