[ Foro de Python ]

Operador lógico XOR (exclusive OR)

24-May-2020 23:28
Invitado (Kari)
4 Respuestas

Hola a tod@s, pasaba por aquí para pedir ayuda con un problema que no he podido realizar :( estoy cursando un curso online de progra, y me falta resolver ese problema para avanzar con el curso.
Espero me puedan ayudar, desde ya muchas gracias!!


PROBLEMA. Considerando que las variables pueden almacenar cualquier tipo de dato, en este ejercicio se utilizaran variables de tipo booleanas. En computación un operador muy conocido es el operador lógico XOR (exclusive OR), el que dadas dos expresiones a y b booleanas, entrega verdadero únicamente si una de ellas es verdadera, y falso en cualquier otro caso.

Por ejemplo si se tiene

resultado = True XOR False
El resultado estará almacenado el valor True, en cambio si se tiene

resultado = True XOR True o resultado = False XOR False
El resultado  estará almacenado el valor False.

La tabla de verdad para todos los valores posibles de a y b, es la siguiente:

 a         b     a XOR b
True True False
True False True
False True True
False False False

Así, utilizando los conocimientos de booleanos adquiridos en el curso, y los conocimientos de operadores lógicos, modifica el código de más abajo, para que en la variable xor quede almacenado el valor de hacer XOR entre las variables a y b.

Para poder resolver este problema , debes escribir el código que falta en el espacio que lo señala. Asume que ya existen variables con los nombres a y b, que ya contienen los valores requeridos (no debes pedírselos al usuario), haz los cálculos que necesites, y luego deja el resultado en una variable llamada xor.

1 def xor(a, b):
2  xor = False
3  # desde aquí hacia abajo debes modificar el programa
4  # modifica la variable xor
5  # recuerda que los datos están en las variables a y b
6  return xor


13-Jul-2020 01:05
Invitado (@epicdovahkiin)

Yo lo hice así y me funcionó mira cómo te va a ti, saludos.

def xor(a, b):
 xor = False
 if bool(a) == bool(b):
   return False
 else:
   return a or b
 return xor


27-Jul-2020 07:20
Invitado (Jk)

La resolvi asi:


def xor(a, b):
 xor = false
 xor= (a or b) and not (a and b)
return xor


12-Aug-2020 01:44
Invitado (Aaron Insight)

Otra resolución amigos!

def  xor (a, b) :

 xor = 0

 xor = not (a == b)

 return xor


13-Aug-2020 09:20
Nacho Cabanes (+84)

Aaron, esa propuesta de solución sólo es válida para el número 0 o el 1, no con valores de más de un bit.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)