Instructions itératives : range, for, while : Différence entre versions

De WikiMéca
Sauter à la navigation Sauter à la recherche
(Page créée avec « Réaliser une itération, ou encore une boucle, c’est répéter un certain nombre de fois des instructions semblables. ==La fonction <syntaxhighlight lang="Python" inli... »)
(Aucune différence)

Version du 13 juillet 2019 à 01:33

Réaliser une itération, ou encore une boucle, c’est répéter un certain nombre de fois des instructions semblables.

La fonction range

La fonction range énumère une plage de nombres et peut prendre entre 1 et 3 arguments entiers :

  • range(b) énumère les entiers ;
  • range(a, b) énumère les entiers ;
  • range(a, b, c) énumère les entiers où n est le plus grand entier vérifiant .
>>> list(range(10)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5, 15))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> list(range(1, 20, 3)) 
[1, 4, 7, 10, 13, 16, 19]

Boucles for (boucles énumérées)

On définit une boucle à l’aide de la fonction for, en suivant la structure suivante :

1 for ... in range(...): 
2     bloc ........................... 
3     d instructions .................

Immédiatement après le mot-clé for doit figurer le nom d’une variable, qui va prendre les différentes valeurs de l’énumération produite par l’instruction range. Pour chacune de ces valeurs, le bloc d’instructions qui suit sera exécuté.

Exemple : fonction somme(n) qui calcule et renvoie la somme des entiers de 1 à n :

1 def somme(n) :
2     s=0
3     for k in range (n+1) :
4         s+=k # ou s=s+k
5     return (s)

Boucles while (boucles conditionnelles)

Une boucle conditionnelle exécute une suite d’instructions tant qu’une certaine condition est réalisée; elle peut donc ne jamais réaliser cette suite d’instructions (lorsque la condition n’est pas réalisée au départ) que les réaliser un nombre infini de fois (lorsque la condition reste éternellement vérifiée). La syntaxe d’une boucle conditionnelle est la suivante :

1 while condition: 
2     bloc ........................... 
3     ................................ 
4     dinstructions .................

Exemple : décompte

1 while x > 0:
2     print(x, end=' ')
3     x = 1

affichera :

10 9 8 7 6 5 4 3 2 1 

Invariant de boucle

On appelle invariant de boucle toute assertion vérifiant les conditions suivantes :

  • Initialisation : cette assertion est vraie avant la première itération de la boucle;
  • Conservation : si cette assertion est vraie avant une itération de la boucle, elle le reste avant l’itération suivante;
  • Terminaison : une fois la boucle terminée, l’invariant fournit une propriété utile qui aide à établir/prouver/analyser l’algorithme.