Saltar al contenido

“o” condicional en problemas de Python

Te recomendamos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, saludos.

Solución:

Las expresiones booleanas en la mayoría de los lenguajes de programación no siguen las mismas reglas gramaticales que el inglés. Tienes que hacer comparaciones separadas con cada stringy conectarlos con or:

if x == "monkey" or x == "monkeys":
    print "You're right, they are awesome!!"
else:
    print "I'm sorry, you're incorrect.", x[0].upper() + x[1:], "is not the right animal."

No necesita hacer la prueba para el caso incorrecto, solo use else. Pero si lo hicieras, sería:

elif x != "monkey" and x != "monkeys"

¿Recuerdas haber aprendido sobre las Leyes de deMorgan en la clase de lógica? Explican cómo invertir una conjunción o disyunción.

gkayling es correcto. Vuelve tu primera instrucción if true si:

x == “mono”

o

“monos” se evalúa como true (lo hace ya que no es un null string).

Cuando desee probar si x es uno de varios valores, es conveniente utilizar el operador “en”:

test = raw_input("It's the flying circus! Cool animals but which is the best?")
x = test.lower()

if x in ["monkey","monkeys"]:
    print "You're right, they are awesome!!"
else:
    print "I'm sorry, you're incorrect.", x[0].upper() + x[1:], "is not the right

Debiera ser
if x == "monkey" or x == "monkeys":

Puntuaciones y comentarios

Si te ha sido de utilidad este post, sería de mucha ayuda si lo compartieras con más juniors y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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