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 una respuesta

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

Información básica sobre protección de datos:

Responsable: Miguel de Dios Matías

Finalidad de la recogida y tratamiento de los datos personales: Responder a los comentarios enviados a través de la web

Legitimación: Consentimiento del interesado/a.

Destinatarios: No se comunican datos a terceros

Derechos: Podrás ejercer tus derechos de acceso, rectificación,  limitación y suprimir los datos en este formulario  así como el derecho a presentar una reclamación ante una autoridad de control.

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