Aller au contenu principal

Boucles

Progression

#Boucles et contrôle

Les boucles constituent un mécanisme fondamental qui permet de répéter des actions et de parcourir des collections sans avoir à dupliquer du code. Python propose deux structures principales : la boucle for qui itère sur des séquences et la boucle while qui s'exécute tant qu'une condition reste vraie. Ces structures sont enrichies par des instructions de contrôle comme break et continue, ainsi que par des compréhensions de listes qui offrent une syntaxe concise pour construire des collections.

pythonpython
1for i in range(5):2    print(i)3 4i = 05while i < 3:6    print('i=', i)7    i += 1

Le mot-clé break permet d'interrompre immédiatement une boucle, tandis que continue passe directement à l'itération suivante sans exécuter le reste du corps de la boucle. Python offre également une fonctionnalité unique avec la clause else associée aux boucles : le bloc else s'exécute uniquement si la boucle se termine normalement, sans avoir été interrompue par un break.

pythonpython
1for i in range(6):2    if i % 2 == 1:3        continue4    if i == 4:5        break6    print(i)

#Playground

Chargement de l’éditeur...

#Exercices

Ces exercices vous permettront de mettre en pratique les différentes formes de boucles et de contrôle de flux :

  • Calculez la somme des nombres de 1 à N en utilisant la fonction range.
  • Écrivez un programme qui compte le nombre de voyelles dans une chaîne de caractères.
  • Générez la suite de Fibonacci jusqu'à ce que les valeurs dépassent 1000.

#Compréhensions et générateurs

Les compréhensions de listes, de dictionnaires et d'ensembles permettent de créer des collections de manière déclarative et lisible. Cette approche rend le code plus expressif en capturant l'intention de transformation directement dans la syntaxe. Les générateurs, quant à eux, utilisent le mot-clé yield pour produire des séquences paresseuses qui ne calculent leurs valeurs qu'à la demande, ce qui les rend particulièrement économes en mémoire pour le traitement de grandes quantités de données.

pythonpython
1squares = [x*x for x in range(10) if x%2==0]2def fib(n):3    a,b=0,14    while n>0:5        yield a6        a,b=b,a+b7        n-=1