Faire des choix avec les alternatives

La première opération fondamentale que nous venons de voir, la répétition, nous permet de définir facilement des traitements répétitifs. Il existe aussi une seconde opération fondamentale, l'alternative, qui permet de prendre une décision sur ce qu'il faut faire à instant donné. Supposons que l'on souhaite transformer les cercles en disques de différentes couleurs dans le programme précédent en alternant deux couleurs. Il est possible de le faire si l'on peut tester la couleur courante. Le code suivant change la couleur de remplissage à chaque tour de boucle. Si elle était VERTE, elle devient bleue et réciproquement.

La syntaxe des tests est la suivante :

if comparaison1:
  séquences d'instructions à réaliser si comparaison1 == True
elif comparaison2:
  séquences d'instructions à réaliser si comparaison1 == False et comparaison2 == True
else:
  séquences d'instructions à réaliser si  comparaison1 == False et comparaison2 == False
  

Les expressions comparaison1 et comparaison2 sont des expressions de comparaison. Il est possible de tester l'égalité à l'aide de l'opérateur ==, à ne pas confondre avec l'opérateur = qui permet d'associer une valeur à une variable (cf. lige 12 du programme). Il est aussi possible de tester l'ordre à l'aide des opérateurs > (supérieur), < (inférieur), >= (supérieur ou égal), < = (inférieur ou égal).

If est un terme anglais qui signifie si. Si la comparaison du if est vraie, alors la séquence d'instructions qui suit est exécutée puis le code qui est après la série de ifelifelse est exécuté. Si cette expression n'est pas vraie, alors, la prochaine comparaison du elif (abréviation de else if qui signifie sinon si) est évaluée. Si cette expression est vraie, alors la séquence d'instructions qui suit est exécutée. Si elle n'est pas vraie, alors la comparaison du prochain elif est évaluée et ainsi de suite jusqu'au else dont le bloc qui suit est exécuté si aucune des comparaisons précédentes n'était vraie. Il peut y avoir autant de lignes elif que nécessaire (de 0 à l'infini ;-)).

Changez maintenant le programme pour que la couleur ne varie plus en fonction de la couleur précédente, mais en fonction de la position du cercle sur la toile. Si la position en Y du cercle est dans la première moitié, alors le cercle est bleu. Si elle est dans la deuxième moitié, alors le cercle est vert.