Une instruction en Python : l'unité de base d'un programme

Une instruction est l'unité de base d'un programme Python : une action à exécuter, écrite sur une ligne.
5 min de lecture
Believemy logo

Définition

Ouvrez n'importe quel fichier Python et vous verrez une suite de lignes, chacune correspondant à une action précise. Pour exécuter ce programme dans le bon ordre, Python a besoin de savoir où une action commence et où elle s'arrête. C'est exactement le rôle de l'instruction : elle découpe le code en actions distinctes, que l'interpréteur traite l'une après l'autre.

Une affectation, un appel de fonction, un return, un import sont autant d'instructions différentes, mais elles partagent toutes la même règle d'écriture : une par ligne, sans ponctuation de fin. Voici quatre d'entre elles, chacune faisant une chose différente :

PYTHON
total = 0                 # affectation : crée la variable
total += prix             # affectation composée : la met à jour
print(total)              # appel : affiche sa valeur
del total                 # suppression : efface la variable

Cette mise en page n'est pas un détail esthétique. Le point-virgule existe en Python et permettrait techniquement d'aligner plusieurs instructions sur une même ligne, mais aucun projet sérieux ne s'en sert : une instruction par ligne fait partie de l'identité du langage, exactement comme l'indentation. La suite de cette fiche explique comment reconnaître une instruction et comment plusieurs d'entre elles s'assemblent en blocs.


Instruction ou expression

Un débutant qui écrit if x = 5: obtient une erreur qui ne parle pas toujours d'elle-même : Python refuse le signe égal simple à cet endroit précis. La raison tient dans une distinction qui explique la plupart des SyntaxError des premières semaines : une expression produit une valeur, une instruction fait quelque chose. 2 + 2 est une expression, elle vaut 4 et peut être utilisée partout où une valeur est attendue. x = 2 + 2 est une instruction, elle affecte cette valeur à un nom et ne vaut rien par elle-même.

Le tableau suivant place côte à côte des écritures qui se ressemblent, pour situer la frontière entre les deux :

ÉcritureNature
prix * 1.2Expression, produit une valeur
total = prix * 1.2Instruction, affecte cette valeur
if prix > 10:Instruction composée, ouvre un bloc
len(articles)Expression, appel qui rend un résultat

Cette frontière a une conséquence directe : une instruction ne peut jamais se glisser là où une expression est attendue. C'est elle qui interdit d'écrire x = (return 5) ou de placer une affectation à l'intérieur d'une condition, et c'est elle qui, en écartant le signe égal simple, protège du grand classique venu des autres langages.

Bon à savoir

Un appel comme print(total) ressemble à une instruction mais reste une expression : il rend toujours une valeur, ici None. Écrire x = print(total) affiche bien le nombre à l'écran, mais range None dans x, jamais la valeur affichée.


Les instructions composées

Certaines instructions ne tiennent pas sur une seule ligne : elles ouvrent un espace où d'autres instructions viennent se ranger. Un if qui teste une condition doit bien exécuter quelque chose quand elle est vraie, et ce quelque chose est lui-même fait d'instructions. Ces instructions composées se reconnaissent à leur ligne d'en-tête terminée par deux-points, suivie d'un bloc indenté : if, for, while, try, def, class, with.

Attention

Oublier les deux points en fin de ligne d'en-tête est l'erreur de syntaxe la plus commise en début d'apprentissage. Tant que ce signe manque, Python refuse d'exécuter le fichier entier, pas seulement la ligne concernée.

Reste une question : que faire quand le bloc n'a rien à contenir, par exemple pendant qu'on esquisse la structure d'un programme avant de la remplir ? Un bloc ne peut jamais rester vide, et laisser les deux points sans suite provoque une erreur. C'est pour cette situation précise qu'existe l'instruction pass : elle ne fait rien, mais elle occupe la place et rend le fichier valide le temps d'écrire le reste.


Les instructions simples les plus courantes

À l'inverse des précédentes, les instructions simples tiennent sur une ligne et n'ouvrent aucun bloc. Un programme Python en contient bien plus que d'instructions composées, et les reconnaître suffit à lire la majorité du code déjà écrit :

InstructionCe qu'elle fait
x = 5Crée ou réaffecte une variable
returnTermine une fonction et renvoie une valeur
importRend un module disponible
raiseLève une exception
delSupprime un nom ou un élément
assertVérifie une hypothèse pendant le développement
break, continueModifient le déroulement d'une boucle
passNe fait rien, mais occupe un bloc


Questions fréquentes

Question

Faut-il un point-virgule à la fin d'une ligne ?

Non, jamais en Python. Le retour à la ligne suffit à terminer une instruction. Ajouter un point-virgule ne provoque aucune erreur, mais signale immédiatement une habitude venue d'un autre langage, et les relecteurs le remarquent tout de suite.

Question

Comment écrire une instruction trop longue pour une ligne ?

En s'appuyant sur les parenthèses, crochets ou accolades déjà présents dans l'instruction : tant qu'ils ne sont pas refermés, Python continue de lire la ligne suivante sans se plaindre. C'est la méthode recommandée, bien avant la barre oblique inverse en fin de ligne, qui reste possible mais se casse facilement à la moindre modification.

Question

Peut-on mettre plusieurs instructions sur une ligne ?

Techniquement oui, avec un point-virgule, et aussi pour un bloc d'une seule ligne écrit juste après un deux-points. Les deux écritures fonctionnent, mais elles nuisent à la lisibilité, et les outils de formatage automatique les défont sans même demander l'avis de qui les a écrites.

Termes connexes

Découvrez notre glossaire Python

Parcourez les termes et définitions les plus couramment utilisés dans le domaine du développement avec Python.

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.