Aller au contenu principal
3e⏱ 4 séances

Python : boucles et fonctions

Ce que tu vas apprendre

  • Utiliser une boucle for pour répéter un nombre de fois déterminé
  • Utiliser une boucle while pour répéter tant qu'une condition est vraie
  • Écrire et appeler une fonction Python
  • Utiliser des paramètres et une valeur de retour
  • Combiner boucles et fonctions dans un programme
Notions clésboucle for, range()boucle whilefonction, def, paramètrevaleur de retour, return

1. La boucle for

Définition. La boucle for permet de répéter un bloc d’instructions un nombre de fois déterminé à l’avance. Elle correspond au bloc répéter ... fois de Scratch.

for i in range(5):
    print("Bonjour")

Ce programme affiche "Bonjour" exactement 55 fois. La variable i (appelée compteur) prend successivement les valeurs 0,1,2,3,40, 1, 2, 3, 4 : range(5) produit 55 valeurs, en partant de 00.

📋 Méthode — Utiliser le compteur d'une boucle for

Le compteur i peut être utilisé à l’intérieur de la boucle, par exemple pour afficher une table de multiplication :

for i in range(1, 11):
    print(i, "x 7 =", i * 7)

Ici, range(1, 11) produit les valeurs 1,2,...,101, 2, ..., 10 (le nombre de fin, 1111, n’est jamais atteint).

Remarque. range(n) produit les nn valeurs 0,1,...,n−10, 1, ..., n-1. C’est une source d’erreur fréquente : range(5) ne va pas jusqu’à 55, mais s’arrête à 44.

→ S’entraîner : Exercice 1

2. La boucle while

Définition. La boucle while (« tant que ») répète un bloc d’instructions tant qu’une condition reste vraie. Elle correspond, en Scratch, à répéter jusqu'à ce que <condition contraire>.

vies = 3
while vies > 0:
    print("Il te reste", vies, "vies")
    vies = vies - 1
print("Partie terminée")

Différence entre for et while. On utilise for quand le nombre de répétitions est connu à l’avance (par exemple : « 10 fois »). On utilise while quand ce nombre dépend d’une condition qui évolue en cours d’exécution, et n’est pas connu au départ.

Attention, boucle infinie. Si la condition d’un while ne devient jamais fausse (par exemple si on oublie de faire évoluer la variable testée), la boucle ne s’arrête jamais.

Exemple d’erreur à éviter :

vies = 3
while vies > 0:
    print("Il te reste", vies, "vies")
# vies n'est jamais modifiée : boucle infinie !

→ S’entraîner : Exercice 2

3. Écrire une fonction

Définition. Une fonction est un bloc d’instructions regroupées sous un nom, que l’on peut ensuite appeler (exécuter) autant de fois que nécessaire, sans avoir à recopier son code. En Python, on définit une fonction avec le mot-clé def.

def dire_bonjour():
    print("Bonjour !")
    print("Bienvenue dans ce programme.")

dire_bonjour()
dire_bonjour()

Ce programme affiche deux fois les deux lignes de la fonction : on dit qu’on appelle la fonction dire_bonjour() deux fois.

Vocabulaire. La ligne def dire_bonjour(): est la définition de la fonction (elle ne l’exécute pas encore). La ligne dire_bonjour() est un appel de fonction (elle exécute le code de la fonction).

→ S’entraîner : Exercice 3

4. Paramètres et valeur de retour

Définition. Un paramètre est une variable, placée entre les parenthèses de la définition d’une fonction, qui permet de lui transmettre une information différente à chaque appel.

def dire_bonjour(prenom):
    print("Bonjour", prenom, "!")

dire_bonjour("Léo")
dire_bonjour("Nour")

Ce programme affiche "Bonjour Léo !" puis "Bonjour Nour !" : la fonction est la même, mais le paramètre prenom change à chaque appel.

Définition. L’instruction return permet à une fonction de renvoyer un résultat, que l’on peut ensuite stocker dans une variable ou réutiliser dans un calcul.

def carre(nombre):
    return nombre * nombre

resultat = carre(6)
print(resultat)

Ce programme affiche 36 : la fonction carre calcule le carré du paramètre reçu, et le renvoie grâce à return.

Remarque. print() affiche une valeur à l’écran mais ne la renvoie pas ; return renvoie une valeur au programme qui a appelé la fonction, sans forcément l’afficher.

→ S’entraîner : Exercice 4

5. Combiner boucles et fonctions

Boucles et fonctions se combinent naturellement : une fonction peut contenir une boucle, et une boucle peut appeler plusieurs fois une fonction.

Exemple. Une fonction qui calcule la somme des nn premiers entiers, en utilisant une boucle for :

def somme_jusqua(n):
    total = 0
    for i in range(1, n + 1):
        total = total + i
    return total

print(somme_jusqua(10))

Ce programme affiche 55 (car 1+2+⋯+10=551 + 2 + \cdots + 10 = 55) : la variable total accumule la somme au fil des tours de la boucle for, puis la fonction la renvoie avec return.

📋 Méthode — Construire une fonction avec boucle qui accumule un résultat
  1. Créer, avant la boucle, une variable qui contiendra le résultat final (souvent initialisée à 00 pour une somme, ou à 11 pour un produit).
  2. À l’intérieur de la boucle, mettre à jour cette variable à chaque tour.
  3. Après la boucle (donc sans indentation supplémentaire), utiliser return pour renvoyer le résultat final.

→ S’entraîner : Exercice 5