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).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.