Comment faire un XOR

Je lis dans la doc qu’on peut utiliser l’opérateur XOR et c’est exactement ce dont j’ai besoin.
Or, il ne fonctionne pas, par exemple:

OR
Je vais évaluer : true OR false
Résultat : true
AND
Je vais évaluer :  true AND false
Résultat :  false
XOR
Attention : il doit y avoir un souci, car le résultat est le même que l'expression
Je vais évaluer :  true XOR false
Résultat :  true XOR false

(idem avec |^ ou ||^, du binaire 0-1, ou du texte double-quoté)

What’s wrong ?

if ((a=0 and b=0) or (a=1 and b=1))

XOR c’est l’un ou l’autre …

if (a!=b)

Celà dit, je confirme il y a un bug

Et le double | du OR s’est fait mangé dans le doc

oui donc si (a=0 and b=0) or (a=1 and b=1) alors faux

Capture d’écran du 2020-05-07 17-43-26

Il te manque un not global alors …
a et b valent 0
image

non la 2 ieme c’est 1==1 && 1==1

a et b changent pendant ton évaluation ?

je sais plus ca devrait donner faux et ca donne vrais
faudrait le faire avec de vraies variable et tester les 4 conditions

La fin de semaine :sweat_smile:… C’est tout vu : Ton expression est équivalente à un XOR inversé
Au ‹ milieu › tu as un OU, donc le premier des deux blocs à gauche ou à droite qui retourne vrai gagne…

C’est bien ce qu’il me semble aussi ^^

oui c’est ton expression qui est pas la bonne
0 == 0 … des == avec des val identique de chaque coté c’est toujours true
fait le avec de des variable a et b
si a==0 et b==0 il faut que les 2 soient a 0
si a==1 et b==1 il faut que les 2 soient a 1
si une de ces 2 condition est remplie (soit un ou)
alors c’est faux

je vais prendre le soleil et toi arrête l’apéro :wink:

le a != b c’était bon aussi

La syntaxe n’a rien à voir… J’ai juste la flemme de coder un bout de php pour ça

Si une des conditions est remplie, c’est vrai … C’est le principe du OU pour avoir faux il faut un ET…
De toute façon, ça vaut pas le coup d’écrire un truc à 3 opérandes alors que tu peux le faire avec 1 seul…
Cela dit, tu as raison, je vais prendre l’apéro

en python ca fonctionne en tout cas
Capture d’écran du 2020-05-07 18-34-19

^ en python c’est un XOR pas un OR… :rofl:

https://python-reference.readthedocs.io/en/latest/docs/operators/bitwise_XOR.html

Bonsoir @jerryzz

Le | devant le ^
En plus de xor, (qui ne fonctionne pas dans le testeur d’expression de Jeedom) il existe ^ :
image

Il est juste tombé sur la ligne en dessous qui devient ainsi fausse.

|| OR
^  XOR
2 « J'aime »

J’espère qu’il ne s’est pas trop fait mal :wink:
Bien vu en tout cas

Merci beaucoup @jpty !

Ne reste plus qu’à corriger la doc’ :wink:

Et merci à vous @naboleo && @olive :slight_smile:

Oui c’est gentil je vous l’avais montré le ^ dans mes derniers exemples …

J’ai fait la demande de correction.

C’était un ^ python ! :slightly_smiling_face: