Nécessité de délimiter des blocs d’instructions

Dans de nombreux langages de programmation (dans tous ?), on est amené à grouper des instructions successives, et à considérer ce groupe comme une seule “méta”-instruction. Mais encore faut-il trouver un moyen de marquer (par des éléments du langage et/ou par des dispositions visuelles) les limites d’un tel groupe d’instructions.

Notons par exemple groupe une suite d’instructions instruction_1 ; instruction_2 ; … ; instruction_p.

Imaginons également une condition test, vraie ou fausse à un moment donné du déroulement du script.

On cherche à écrire une séquence d’instructions du genre :

Voici deux formulations possibles. La première solution est pour le moins ambiguë (est-ce qu’on évalue uniquement instruction_1 si la condition test est vraie ?). Seule la seconde solution est correcte car elle indique clairement les limites du groupe d’instructions à évaluer si la condition test est vraie.

Formulation incorrecte

Formulation correcte

On peut aussi imaginer une séquence d’instructions du genre :

Ou encore, si var est une variable parcourant un ensemble ens de valeurs, on peut chercher à écrire :

Voici quelles seraient les formulations correctes pour traduire ces intentions :

Il faut donc un moyen non ambigu de poser les limites d’un groupe d’instructions. Dans le même temps, il est d’usage d’accentuer visuellement le groupe par une légère indentation (décalage vers la droite).

Dans les exemples précédents, instruction_1 ; … ; instruction_p peuvent également être des instructions composées, et donc contenir des groupes (des blocs) d’instructions.

Chaque instruction du programme figure donc à un certain niveau de profondeur (si on convient que le niveau initial est le niveau 0, on trouvera des instructions de niveau 1, de niveau 2, etc.). Ces niveaux sont d’autant plus faciles à identifier pour le lecteur que le programmeur aura pris soin de les marquer visuellement par des indentations progressives.

Dans la plupart des langages, ces indentations n’ont rien d’obligatoire : elles constituent un simple confort visuel. Elles peuvent varier légèrement, à l’intérieur d’un même bloc, sans conséquence pour la logique du programme.

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 3

  1. Entrée au clavier (input) et affichage à l’écran (print)
  2. Nécessité de délimiter des blocs d’instructions
  3. L’importance fondamentale de l’indentation en Python
  4. Branchements conditionnels if…elif…else…
  5. Expressions conditionnelles
  6. Répétitions conditionnelles (while)
  7. Notion d’intervalle
  8. Répétitions inconditionnelles (boucles for)
  9. L’instruction pass