Archivo de la etiqueta: código de ejemplo

XoR y NXOr en Python3

Algunas veces necesitas el XOR o el NXOR cuando programas y en mi caso se me ha dado en python.

No sabía si tenía un operador propio, pero parece que no tiene, así que he picado picado una forma de conseguir el XOR, os pego el código:

>>> print("---XOR----")
---XOR----
>>> for i in range(0,4):
...      a, b = list("{:02b}".format(i))
...      a, b = (int(a), int(b))
...      print(a, b, bool(a) is bool(b))
... 
0 0 True
0 1 False
1 0 False
1 1 True
>>> print("---NXOR----")
---NXOR----
>>> for i in range(0,4):
...      a, b = list("{:02b}".format(i))
...      a, b = (int(a), int(b))
...      print(a, b, bool(a) is not bool(b))
... 
0 0 False
0 1 True
1 0 True
1 1 False

El truco esta en castearlo a bool la variable y usar el operador is (para el XOR) y el operador is not (para el NXOR).