Main

Référence : Fonctions Pyduino

if (condition) et ==, !=, <, > (opérateurs logiques de comparaison)


Description

L'instruction if ("si" en français), utilisée avec un opérateur logique de comparaison, permet de tester si une condition est vraie, par exemple si la mesure d'une entrée analogique est bien supérieure à une certaine valeur.

Syntaxe

Le format d'un test if est le suivant :

if uneVariable > 50 :
       #faire quelque chose

Dans cet exemple, le programme va tester si la variable uneVariable est supérieure à 50. Si c'est le cas, le programme va réaliser une action particulière. Autrement dit, si l'état du test entre les parenthèses est vrai, les instructions comprises entre les accolades sont exécutées. Sinon, le programme se poursuit sans exécuter ces instructions.

La condition évaluée nécessite l'utilisation d'une ou plusieurs de ces opérateurs logiques de comparaison :

Opérateurs logiques de comparaison :

  • x == y (x est égal à y)
  • x != y (x est différent de y)
  • x < y (x est inférieur à y)
  • x > y (x est supérieur à y)
  • x <= y (x est inférieur ou égal à y)
  • x >= y (x est supérieur ou égal à y)

Attention :

Prenez garde à ne pas utiliser accidentellement le signe = unique (par exemple if x=10 : ). Le signe égal unique est l'opérateur d'attribution d'une valeur, et fixe la valeur de x à 10 (autrement dit met la valeur 10 dans la variable x). Utilisez bien au lieu de cela le signe double égal == (c'est à dire if x==10, le == étant l'opérateur logique de comparaison, et qui test si x est bien égal à 10 ou non. Cette dernière condition x==10 est vraie uniquement si x est égal à 10, alors que la première condition x=10 sera toujours vraie.

C'est la raison pour laquelle le langage Python (sur lequel est basé Pyduino) évalue la condition x=10 de la façon suivante : la valeur 10 est assignée à la variable 10 (se souvenir que l'opérateur = est l'opérateur d'attribution de valeur ), et donc la variable x contient 10. Dès lors, l'instruction conditionnelle "if" teste la valeur 10, laquelle est toujours évaluée VRAIE. C'est pourquoi, l'instruction if x=10 sera toujours considérée VRAIE, ce qui n 'est pas le résultat voulu lorsque l'on utilise une instruction if. De plus, la variable x est mise à la valeur 10, ce qui n'est pas non plus l'action désirée.

A retenir : Ne pas confondre l'opérateur d'assignement = (signe égal unique) avec l'opérateur de comparaison == (double signe égal), qui lui évalue si deux expressions ou variables sont égales. C'est l'erreur qui tue... aussi bien le programmeur débutant que chevronné ! Très difficile à détecter car pas de message d'erreur... et pourtant un code qui bloque ou qui ne fait rien...

if peut bien sûr être une partie d'une structure de contrôle de type branchement en utilisant l'instruction if...else.

Liens utiles

http://docs.python.org/2/reference/compound_stmts.html#if

Commentaires utilisateurs

  • En Python, il n'est pas nécessaire d'utiliser les ( ) pour encadrer la condition testée. Cependant, l'utilisation des parenthèses est possible et permet de mettre la / les conditions sur plusieurs lignes ce qui est parfois très pratique !

Page d'accueil de la référence Pyduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées à l'adresse suivante : support_at_mon-club-elec_point_fr

Cette page a été réalisée par Xavier HINAULT (2013) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.