☀️
420-1G2-HU Logique de programmation
  • 👋Bienvenue dans le cours de logique de programmation!
  • Bases de la logique de programmation
    • Concepts de la programmation
    • Les opérateurs
      • Exercices
    • Les commentaires
  • Les données
    • Les données et types simples
    • Les variables, les constantes et les opérations de base
    • Les opérations d'écriture et de lecture
    • Les opérations sur les chaînes de caractères
    • Laboratoire 1 - données
    • Laboratoire 2 - données
  • Les collections de données
    • Les listes
    • Les opérations sur les listes
    • Laboratoire listes - solution
    • Les dictionnaires
      • Exercices
  • Différents types de traitements
    • Structures logiques séquentielle
    • Structures logiques conditionnelles (if/else/elif)
    • Structures logiques répétitives (boucles)
      • Exercices de base
      • Laboratoire boucles - solution
  • Modularisation
    • Création et appels des fonctions
    • La documentation des fonctions
    • Annotation de types dans les fonctions
    • Laboratoire - fonctions (niveau débutant)
    • Révision express fonctions
    • Les modules
      • Laboratoire
  • La portée des variables
  • Débogage
    • 🫂Le débogueur, c'est ton ami!
      • Introductions aux outils de débogage
      • Techniques de débogage
    • Les erreurs et exceptions
      • Introduction aux notions d’erreurs
      • Les exceptions et leurs gestion
      • Exercices de base - avec solutions
      • Laboratoire débogage et gestion des erreurs -solution
  • Tests unitaires
    • Tests unitaires
    • Exercice
  • Cryptographie
    • Introduction à la cryptographie
  • Les fichiers
    • Accès aux fichiers
  • Résolution de problèmes
    • Résolution de problèmes : exercice introductif
    • Étapes d'analyse et de résolution de problèmes
  • Activités avec Légos
    • Introduction à la programmation
    • Consolidation sur les fonctions avec des blocs
    • Pratiquer les boucles avec des blocs
  • Laboratoires
    • Simulation combat - dragon vs chevalier
    • Simulateur de bataille - Les anneaux du pouvoir
    • Jeu de cartes
    • Lien logique mathématique
      • Algèbre de Boole
    • Crypto variée
    • Après Noël
  • git - système de gestion de versions
    • Introduction à Git
    • Étapes de création des dépôts Git
  • Classes inversées
    • Résolution de problèmes, fonctions et traitements conditionnels
  • Examens
    • Examen 2 - 2023
    • Examen 3 - 2023
    • Examen 2 - 2024
  • Révision
    • Fonctions, gestion d'erreurs et tests unitaires
    • Résolution de problème
  • Trucs utiles
    • Check-list
Powered by GitBook
On this page
  • Introduction
  • Boucles while
  • Boucle for
  • La fonction range()
  • Les instructions de contrôle des boucles
  • break
  • continue
  • else
  • Exemple boucles imbriquées
  • Exemple de boucle while True/break
  • Exemples avec des listes
  • Référence
  1. Différents types de traitements

Structures logiques répétitives (boucles)

Introduction

La structure répétitive (ou boucle) est une répétition du même bloc de code, jusqu’à l’obtention d’un résultat escompté. L'arrêt de cette boucle se fait selon une condition ou après un certain nombre d'itérations déterminé.

Il existe deux types de boucles en Python : les boucles while et les boucles for.

Boucles while

Le traitement s’exécute tant que la condition à l’entrée de la structure est vraie, donc le code est exécuté de 0 à plusieurs fois. La structure se lit : "tant que la condition est vraie, exécuter lesinstructions".

Syntaxe Python

while <condition>:
  <instructions à répéter>

Exemple 1

compteur = 1
while compteur < 10:
  print("compteur = ", compteur)
  compteur += 1

Notez que pour un arrêt assuré de la boucle, la condition doit évoluer, i.e. elle doit passer de True à False à un moment donné. Dans l'exemple précédent, on incrémente le compteur à chaque itération, ce qui fait que lorsque le compteur est égal à 10, on sort immédiatement de la boucle.

Boucle for

Le traitement se répète autant de fois qu'il y a d'éléments dans une collection (un ensemble d'éléments, exemple : une liste). La structure se lit : pour chaque élément dans la collection exécuter les instructions.

Syntaxe Python

for <c> in <collection>:
  <instructions à répéter>

La fonction range()

La fonction native range() est utilisé lorsqu'on veut itérer à travers une séquence de nombres. Elle est souvent utilisée dans les boucles for.

Notez que la fonction range() ne génère pas une liste d'entiers, mais plutôt un objet de type "range". Vous pouvez le convertir en liste en utilisant list().

  • range(stop) : génère une séquence de nombres de 0 jusqu'à stop-1. Exemple :

Essayez ceci :
for i in range(10):
    print(i)
  • range(start, stop) : génère une séquence de nombres de start jusqu'à stop-1. Exemple :

Essayez ceci :
for i in range(4, 10):
    print(i)
  • range(start, stop, step) : génère une séquence de nombres de start jusqu'à stop-1 par pas de step. Exemple :

Essayez ceci :
for i in range(4, 10, 2):
    print(i)

Les instructions de contrôle des boucles

break

Permet de sortir prématurément de la boucle for ou while la plus proche (dans le cas de plusieurs boucles imbriquées).

Exemple

Dans cet exemple, l'exécution de la boucle s'arrête lorsque i est égal à 7. Les valeurs affichées sont 0, 1, 2, 3, 4, 5 et 6.

for i in range(10):
    if i == 7:
        break
    print(i)

continue

Permet de passer immédiatement à l'itération suivante d'une boucle for ou while sans exécuter le reste du code.

Exemple

Dans cet exemple, lorsque i est égal à 3, on passe à l'itération suivante (i=4) sans exécuter le print(i). Les valeurs de 0 à 9 sont toutes affichées sauf 3.

for i in range(10):
    if i == 3:
        continue  # Passe à l'itération suivante sans exécuter les instructions suivantes
    print(i)

else

Une clause else peut être incluse après une boucle for ou while. Le bloc else contient des instructions qui seront exécutées une fois que la boucle est terminée.

  • Dans une boucle for, le bloc else est exécuté après que la boucle ait atteint sa dernière itération.

  • Dans une boucle while, le bloc else est exécuté après que la condition de la boucle ait atteint la valeur False.

Dans les deux cas, le bloc else n'est pas exécuté lorsque la boucle a été arrêté via un break.

Exemple 1

Dans cet exemple, la boucle s'exécute jusqu'à la fin (i==9), donc le bloc else est exécuté et affiche le message "La boucle est terminée.".

for i in range(10):
    print(i)
else:
    print("La boucle est terminée.")

Exemple 2

Dans cet exemple, la boucle est interrompue à l'itération 7, donc le bloc else ne s'exécute pas.

for i in range(10):
    if i == 7:
        break  # Sort de la boucle
    print(i)
else:
    print("La boucle est terminée.")

Exemple boucles imbriquées

  • Il est possible d'avoir deux boucles (ou plus) imbriquées l'une à l'intérieur de l'autre.

  • continue et break s'appliquent à la boucle la plus proche d'eux. i.e.

Dans l'exemple suivant, si break s'exécute, on sort de la boucle intérieure (la plus proche), mais on continue l'exécution de la boucle extérieure normalement car break ne s'applique pas sur celle-ci.

for i in range(1, 4):
    print(f"Boucle extérieure, itération {i}")

    for j in range(1, 6):
        if j == 3:
            continue

        if i == 2 and j == 4:
            break
        print(f"   Boucle intérieure, itération {j}")
        
    print("-----------------------------------")

Exemple de boucle while True/break

Parfois, nous devons forcer la création de boucles infinies et utiliser le mot clé break pour en sortir sous une condition. Cette pratique doit cependant être limitée à des cas où un while <condition> ne s'applique pas.

Exemple

À la place de cette boucle :

while True:
    commande = input("Entrer une commande: ")
    if commande == "exit":
        break

Privilégiez cette boucle :

commande = ""
while commande != "exit":
    commande = input("Entrer une commande: ")

Exemples avec des listes

Exemple 1 : parcours d'une liste avec la boucle while

fruits = ['pommes', 'poires', 'bleuets', 'raisins', 'bananes', 'pamplemousse']

i = 0
while i < len(fruits):
    print("fruit = ", fruits[i])
    i += 1

Exemple 2 : parcours d'une liste par éléments avec la boucle for

fruits = ['pommes', 'poires', 'bleuets', 'raisins', 'bananes', 'pamplemousse']

for fruit in fruits:
  print("fruit = ", fruit)

Exemple 3 : parcours d'une liste par les indices avec la boucle for

fruits = ['pommes', 'poires', 'bleuets', 'raisins', 'bananes', 'pamplemousse']

for i in range(len(fruits)):
  print("fruit = ", fruits[i])

Notez que contrairement aux boucles while, les valeurs de i évoluent en prenant le prochain élément de la liste (retournée par range(len(fruits))) à chaque fois, nous n'avons pas besoin de le faire nous même.

Référence

PreviousStructures logiques conditionnelles (if/else/elif)NextExercices de base

Last updated 8 months ago

()

Voir la description de la fonction range()
4. More Control Flow ToolsPython documentation
Logo