Python - Problema con un IF

 
Vista:
sin imagen de perfil

Problema con un IF

Publicado por Ashran (1 intervención) el 03/09/2016 21:19:52
Hola a todos!

He empezado hace poco con Python y con programación en general, y aún tengo mucho que aprender. Estoy haciendo un pequeño programa para practicar, el cual consiste en una especie de Quiz, donde hay que seleccionar entre tres respuesta A, B o C, escribiendo A, B o C cuando corresponda.

Mi problema surge cuando quiero crear una condicion if en la cual si no se escribe A, B o C especificamente en mayuscula, o sea, exactamente esa string, te devuelva un "escribe una respuesta valida", pero no lo consigo.

Aquí un ejemplo de mi codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
def pregunta(respuesta_correcta):
 
    respuesta = input("Choose carefully: ")
 
    if respuesta == "A" or "B" or "C":
        if respuesta != respuesta_correcta:
            print("Error")
            quit()
        else:
            print()
            print(random.choice(mensaje_correcto))
    else:
        print("Enter a valid answer (A, B or C)")

Tambien probe de otras formas pero ninguna funciono. Gracias por vuestro tiempo, hasta luego!

(por lo visto la indentacion no se ve bien en mi mensaje, pero esta bien indentado en mi codigo)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Problema con un IF

Publicado por Manuel (1 intervención) el 03/09/2016 22:43:18
¿Qué te devuelve exactamente? Tal y como tienes el código tiene pinta que siempre pasará el primer if, ya que if respuesta == "A" or "B" or "C": tendrá siempre un resultado verdadero. Para corregir eso bastaría con poner if respuesta == "A" or respuesta == "B" or respuesta =="C":

La variable mensaje_correcto que pones ahí no se cual es, ya que no la tienes declarada en ninguna parte del código. Otro posible error.

PD: La verdad que sería de ayuda que pusieras el código indentado. Hay un botón que el que aparece </> entre las opciones de estilo cuando vas a poner el mensaje por aquí. Creo que es lo que necesitas.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar