Les boucles

Cette session vous enseigne comment répéter des actions en Python avec les boucles while et for.

Publié le par Gabriel Trouvé (mis à jour le )
22 minutes

Jusqu'à présent, nos programmes exécutaient chaque instruction une seule fois. Mais avec la magie de la programmation, il est possible d'automatiser des tâches. Pour cela, on utilise les boucles.

À la fin de cette session vous devrez coder un petit jeu : on l'appellera ... Simulation de Pluie de Météorites ! ☄️

Les boucles

while (tant que)

La boucle while répète un bloc de code tant qu'une condition est vraie. Ce qui veut dire que l'on peut créer une boucle sans savoir à l'avance combien de répétitions seront nécessaires.

La syntaxe est simple (et oui comme toujours ! On est en Python 🐍) :

while condition:
    # Bloc de code à répéter
    # Attention à bien avoir une ligne qui pourra rendre la condition fausse !
PYTHON

Attention

La boucle while, contrairement à la boucle for que nous verrons plus loin, permet la création d'une boucle infinie. En effet, comme elle est basée sur une condition, si cette condition ne change pas et qu'elle est toujours vraie (True), la boucle ne s'arrêtera jamais. Il est donc bien important de comprendre son fonctionnement pour éviter les boucles infinies qui risquent de faire planter votre programme (et votre machine).

Prenons un exemple et comptons jusqu'à 10 :

compteur = 1

while compteur <= 10: # Tant que le compteur est inférieur ou égal à 10
    print("Le compteur est à", compteur)
    compteur = compteur + 1 # On incrémente le compteur

print("Fin de la boucle.")
PYTHON
Un instant

Dans l'exemple ci-dessus, tant que la variable compteur est inférieure ou égale à 10, on affiche Le compteur est à .... Ensuite, à la fin de la boucle on incrémente la variable compteur pour qu'elle prenne + 1 à chaque tour de boucle.

À noter

Savez-vous qu'il existe une manière plus concise pour l'incrémentation ?

compteur = compteur + 1 peut s'écrire compteur += 1.

Maintenant, imaginons une boucle while avec la condition True. La condition est toujours vraie. Mais il est possible de l'arrêter avec l'instruction break.

Reprenons l'exemple précédent en le modifiant un peu :

compteur = 1

while True: # La boucle est infinie par nature
    print("Le compteur est à", compteur)
    if compteur >= 5:
        print("Le compteur a atteint 5, on sort de la boucle.")
        break # On casse la boucle ici !
    compteur += 1 # On incrémente le compteur

print("Fin de la boucle.")
PYTHON
Un instant

C'est une structure très pratique et courante dans les programmes qui attendent une action spécifique pour s'arrêter.

vies = 3

while True: # La boucle de jeu est infinie par nature
    print("Le joueur a encore", vies, "vies.")

    # Ici, on pourrait imaginer du code pour le jeu...
    # Par exemple, le joueur perd une vie à chaque tour.
    vies = vies - 1

    if vies == 0:
        print("Game Over !")
        break # Le joueur n'a plus de vie, on casse la boucle !

print("Vous avez quitté la boucle de jeu.")
PYTHON
Un instant

À noter

On a vu qu'on pouvait utiliser variable += 1 pour incrémenter une valeur numérique de 1. On peut faire cette opération avec n'importe quel opérateur mathématique 😉

variable = 1
variable *= 5
print(variable)
variable **= 2  # puissance 2
print(variable)
PYTHON
Un instant

Les listes : premier aperçu des conteneurs

Avant d'étudier le prochain type de boucle, étudions rapidement les listes.

Jusqu'ici, nos variables ne contenaient qu'une valeur (un nombre, un mot, un booléen).

Mais en Python il est possible de stocker plusieurs valeurs dans une variable grâce à des types "conteneurs".

Pour ce cours nous allons en utiliser un : la liste (list). Il s'agit d'une collection ordonnée d'éléments que l'on déclare avec des [].

# Une liste de chaînes de caractères
fruits = ["pomme", "banane", "cerise"]

# Une liste de nombres
nombres = [1, 5, 10, 25]

# Une liste peut même mélanger les types !
infos = ["Alice", 34, "Paris"]

print(fruits)
print(nombres)
print(infos)
PYTHON
Un instant

Pas de panique : nous reviendrons sur les listes plus en détail dans un prochain module 😉

La boucle for (pour chaque)

Maintenant que nous savons ce qu'est une liste, vous allez vite comprendre le principe de la boucle for. Elle est utilisée pour parcourir les éléments d'une séquence (comme une liste 😊) et exécuter du code pour chaque élément.

La syntaxe :

for element in sequence:
    # Bloc de code à exécuter pour chaque element
PYTHON

Par exemple, pour afficher chaque fruit de notre liste fruits :

fruits = ["pomme", "banane", "cerise"]

for fruit in fruits:
    print("J'aime la", fruit)
PYTHON
Un instant

Quand on veut répéter une action un certain nombre de fois, sans utiliser de liste, en Python il est courant d'utiliser la fonction range.

Par exemple, range(5) génère une séquence de nombres de 0 à 4 (le dernier nombre est exclu) :

for nombre in range(5):
    print("Le nombre est", nombre)
PYTHON
Un instant

Pas mal non ? Et en plus, c'est sans risque de boucle infinie 😎

Maintenant je vais vous faire travailler un peu 👩‍💻

Un peu d'aléatoire

Pour le petit jeu que vous devez développer à la fin de ce module, l'ordinateur devra choisir un nombre, mais pour cela, il faut importer un module. Un module ?!

À noter

Un module est un fichier contenant du code Python (des fonctions, des variables...) que l'on peut importer dans notre propre programme pour utiliser ses fonctionnalités. On peut voir ça comme... une boîte à outils supplémentaire.

Pour le côté aléatoire et le hasard, Python dispose d'un module appelé random. On l'importe en début de programme pour pouvoir utiliser ses fonctions.

Ici nous utiliserons la fonction randint(a, b) qui retourne un entier aléatoire entre a et b (b est inclus).

import random


nombre_aleatoire = random.randint(1, 100)
print("J'ai choisi un nombre entre 1 et 100 :", nombre_aleatoire)
PYTHON
Un instant

Prêt pour développer notre petit jeu ?

Bravo pour avoir terminé ce module ! Nous allons voir les listes un peu plus en détail dans le prochain.

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.