Truc informatique

L'indentation, le secret des blocs

En Python, ce ne sont pas des accolades qui décident ce qui est « dans le si » : c'est le retrait à gauche. Quelques espaces changent tout le comportement du programme.

Démo : déplace une ligne dans ou hors du bloc

Choisis une température, puis indente ou désindente la dernière ligne. Regarde la sortie changer : une même ligne ne fait pas la même chose selon son retrait.

Température :
Dernière ligne :
Le code
La sortie

La règle en une phrase

Le deux-points : ouvre un bloc. Tout ce qui est en retrait juste en dessous appartient à ce bloc et ne s'exécute que si la condition est vraie. Dès qu'une ligne revient à gauche, elle est hors du bloc : elle s'exécute toujours.

Convention universelle en Python : 4 espaces par niveau de retrait. Toujours des espaces, jamais un mélange d'espaces et de tabulations - c'est la cause no 1 de l'erreur IndentationError.

Indenter vite, dans Colab ou n'importe quel éditeur

RaccourciEffet
TabDécale la ligne (ou la sélection) d'un cran vers la droite
Shift + TabRamène la ligne (ou la sélection) d'un cran vers la gauche
Sélectionner plusieurs lignes puis TabIndente tout le bloc d'un coup
Ctrl + /Commenter / décommenter les lignes sélectionnées

Astuce : après un : et un retour à la ligne, la plupart des éditeurs (dont Colab) ajoutent le retrait tout seuls. Si une ligne refuse de s'exécuter avec une erreur d'indentation, vérifie qu'elle n'a pas un mélange d'espaces et de tabulations invisibles.

Le piège classique

Ces deux programmes ne se ressemblent qu'en apparence. À gauche, l'alerte ne sort qu'en cas de fièvre. À droite, elle sort tout le temps - le retrait a été oublié.

Correct (dans le bloc)Bug (hors du bloc)
if t >= 38:
    print("Alerte")
if t >= 38:
print("Alerte")