Les boucles FOR.

Introduction:

  • En anglais, for peut se traduire par pour.
  • En anglais, "range" peut se traduire par "aller de ... à ...".

    Par exemple, "prices range from 10 to 50 euros" peut se traduire par "les prix vont de 10 à 50 euros".

1. La boucle for

Une boucle sert à répéter des instructions sans les recopier plusieurs fois. En Python, on utilise le mot‑clé for que l'on peut associer à la fonction range() pour répéter un bloc un nombre précis de fois.

1. Syntaxe minimale

for i in range(n):
    # bloc exécuté n fois

2. Premier exemple : afficher un message 5 fois

for i in range(5):      # 0 → 4
    print("Bonjour !")

3. Comprendre range(start, stop, step)

range() peut recevoir jusqu’à trois nombres :

range(départ, arrêt, pas)

Exemples :

for i in range(2, 7):        # 2,3,4,5,6
    print(i)

for i in range(10, 0, -2):   # 10,8,6,4,2
    print(i)

4. Exemple pratique : calculer la somme de 1 à 10

somme = 0
for i in range(1, 11):   # 1 → 10
    somme += i
print("La somme vaut", somme)

5. L’indentation est obligatoire !

Les lignes à répéter doivent être indentées (4 espaces). Un mauvais alignement déclenche une IndentationError.

À retenir

2. Exemple :

Supposons que l'on souhaite calculer \(0+1+2+3+4+5+6+7\).

Nous pouvons alors utiliser le code ci-dessous :

somme = 0
for nombre in range(8):
    somme = somme + nombre
print(somme)
  

3. Paramètres de la boucle for

4. Exercice :

    Qu'affichent les instructions suivantes ?

  1. for i in range(8):
        print(i)
  2. Qu'affichent les instructions suivantes ?

    for i in range(5,32):
        print(i)
  3. Qu'affichent les instructions suivantes ?

    for i in range(-2,22):
        print(i)
  4. Qu'affichent les instructions suivantes ?

    for i in range(3,70,5):
        print(i)
  5. Qu'affichent les instructions suivantes ?

    for i in range(10,0,-1):
        print(i)

5. Exercice :

Ecrire une séquence d'instruction permettant d'afficher les nombres de 2 à 100 avec un nombre par ligne.

Affichage :

6. Exercice :

Ecrire une séquence d'instruction permettant d'afficher les nombres de -6 à 8 avec un nombre par ligne.

Affichage :

7. Exercice :

Ecrire une séquence d'instruction permettant d'afficher les nombres de 0 à 100 avec un nombre par ligne, en avançant de 5 en 5.

Affichage :

8. Exercice :

Un peu de mathématiques:

On considère la fonction \( f : x \longmapsto 47x-13\).

On demande de compléter le tableau de valeurs suivant à un élève :

\(x\) -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
\(f(x)\)

Ce travail étant un peu ennuyeux, on décide de le rendre moins répétitif en le programmant en Python.

  1. Programmer la fonction f.
  2. Programmer une boucle qui affiche les valeurs \(f(x)\) demandées.
def f(x): return .......... for x in .......... : ..............

Tests :

# Tests

Affichage :

Console:



    
>>>

9. Exercice :

Un peu de mathématiques:

On considère la fonction \( f : x \longmapsto 23x+8\).

On demande de compléter le tableau de valeurs suivant à un élève :

\(x\) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
\(f(x)\)

Ce travail étant un peu ennuyeux, on décide de le rendre moins répétitif en le programmant en Python.

  1. Programmer la fonction f.
  2. Programmer une boucle qui affiche les valeurs \(f(x)\) demandées.

Tests :

# Tests

Affichage :

Console:



    
>>>

10. Exercice :

Compléter les instructions pour que Python affiche le résultat de \(3 + 4 + 5 + 6 + ... + 71 + 72\).

somme = 0 for nb in range(..., ...): somme = somme + nb print(somme)

Tests :

# Tests

Affichage :

11. Exercice :

Ecrire les instructions pour que Python affiche le résultat de la variable somme qui est égale à \(13 + 23 + 33 + ... + 1153 + 1163 + 1173\).

somme = 0

Tests :

# Tests

Affichage :

12. Exercice :

Ecrire les instructions pour que Python affiche le résultat de la variable somme qui est égale à \(4+12+22+32+...+1902+1912+1922\) (oui, il y a bien un 4 au début..).

Tests :

# Tests

Affichage :

13. Exercice :

Ecrire une fonction en Python repete(texte) qui prend en paramètre un string texte et affiche 7 fois ce string.

Exemple :

>>> repete("cadeau")
cadeau
cadeau
cadeau
cadeau
cadeau
cadeau
cadeau

Affichage :

14. Exercice :

Écris une fonction appelée somme_n_premiers qui prend un entier n en paramètre et utilise une boucle for pour calculer la somme des n premiers entiers, de 1 à n (inclus).

La fonction doit retourner (return) cette somme :

  • Par exemple, pour n = 5, elle renverra 1 + 2 + 3 + 4 + 5 = 15.

Exemples :

  • somme_n_premiers(1)1
  • somme_n_premiers(5)15
  • somme_n_premiers(10)55

Tests :

# Tests

Console :



    
>>>

15. Exercice :

Contexte : Dans un petit jeu de maths, Ana doit compter combien de nombres entre 1 et n sont des multiples de 3. Elle veut écrire une fonction pour automatiser ce calcul.

Écris une fonction appelée compter_multiples_trois qui prend un entier n en paramètre et utilise une boucle for avec range pour parcourir tous les nombres de 1 à n (inclus) et compter ceux qui sont divisibles par 3.

La fonction doit retourner un entier : le nombre de multiples de 3 trouvés.

Exemples :

  • compter_multiples_trois(3)1
  • compter_multiples_trois(10)3
  • compter_multiples_trois(15)5
def compter_multiples_trois(n): somme = ..... for nb in range(... , ....): if nb % ... == 0: # si nb est divisible par 3 somme = ................... return somme

Tests :

# Tests

Console :



    
>>>

16. Exercice :

Contexte : Le prix journalier d’un abonnement de parking augmente d’1 € chaque jour. Le premier jour il coûte prix_initial, le deuxième jour prix_initial + 1, le troisième jour prix_initial + 2, et ainsi de suite.

Écris une fonction appelée cout_total_abonnement qui prend :

  • prix_initial (float ou int) — le prix du premier jour ;
  • n (int) — le nombre total de jours de l’abonnement.

La fonction doit utiliser une boucle for avec range pour additionner le coût de chaque jour et retourner la somme totale payée.

Exemples :

  • cout_total_abonnement(5, 1)5
  • cout_total_abonnement(5, 3)18  
  • cout_total_abonnement(2, 4)14  
def cout_total_abonnement(prix_initial, n): somme = 0

Tests :

# Tests

Console :



    
>>>

17. Parcourir une chaîne de caractères

Un string (chaîne de caractères) est une suite de lettres : on peut donc lire ses caractères un à un avec une boucle for.

1. Syntaxe

for caractere in texte:
    # bloc exécuté pour chaque caractère

2. Exemple : afficher chaque lettre

mot = "Python"
for lettre in mot:
    print(lettre)

Sortie :

P
y
t
h
o
n

18. Exercice :

Contexte : Pour estimer la « fluidité » d’un texte, on souhaite compter le nombre de voyelles qu’il contient, voyelles que l’on définit ici comme : a e i o u y A E I O U Y.

Complète la fonction appelée compter_voyelles qui prend une chaîne de caractères phrase en paramètre et utilise une boucle for pour parcourir chaque caractère et compter les voyelles.

La fonction doit retourner un entier représentant ce nombre de voyelles.

Exemples :

  • compter_voyelles("Bonjour")3
  • compter_voyelles("Chat")1
  • compter_voyelles("")0
def compter_voyelles(texte): somme = 0 voyelles = "aeiouyAEIOUYéèêàâùûïô" for carac in ..... : if carac in ........ : somme = .......... return s

Tests :

# Tests

Console :



    
>>>