Python - Ayuda , no entiendo porque no funciona

 
Vista:
sin imagen de perfil

Ayuda , no entiendo porque no funciona

Publicado por Yuvania (4 intervenciones) el 17/05/2018 10:07:43
Deseo hacer un juego de trivia, y quiero comparar lo que esta en las listas con lo que recibire de los Entry , trate de hacerlo como lo haria en Java pero solo funciona cunado ingreso 1 y Uno, pero si ingreso 2 y "Dos ", ya no funciona


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
listaPregunta=["1","2","3","4"]
listaRespuesta=["Uno","Dos","Tres","Cuatro"]
 
pregunta=input("ingrese la pregunta")
respuesta=input("Ingrese la respuesta")
 
def verificar(obtenerPregunta, obtenerRespuesta):
	msj="Metodo verificar \n"
 
	for i in  range(len(listaPregunta)):
		if (listaPregunta[i]==obtenerPregunta and listaRespuesta[i]==obtenerRespuesta):
		     msj+=" \nFunciono"
		     print("Prueba funciono")
		else:
		     msj+=" \nNO Funciono"
		     print("Prueba no funciono")
		return msj
 
print(verificar(pregunta,respuesta))
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
Imágen de perfil de abzerox
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda , no entiendo porque no funciona

Publicado por abzerox (109 intervenciones) el 18/05/2018 05:50:18
Hola, en lugar de recorrer toda la lista usando una estructura for...in, podes usar el operador in, lo cual sería más eficiente, además podrias utilizar en lugar de dos listas un diccionario donde la key seria la pregunta y el valor la respuesta, algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
lista_pregunta_respuestas = {
    "1": "Uno",
    "2": "Dos",
    "3": "Tres",
    "4": "Cuatro"
}
pregunta = input("ingrese la pregunta: ")
respuesta = input("Ingrese la respuesta: ")
 
 
def verificar(obtenerPregunta, obtenerRespuesta):
    msj = "Metodo verificar \n"
    if (obtenerPregunta in lista_pregunta_respuestas and
            lista_pregunta_respuestas[obtenerPregunta] == obtenerRespuesta):
        msj += "Funciono"
    else:
        msj += "NO Funciono"
    return msj
 
 
print(verificar(pregunta, respuesta))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda , no entiendo porque no funciona

Publicado por Yuvania (4 intervenciones) el 23/05/2018 14:28:01
Gracias, tu respuesta fue de gran ayuda.No había utilizado los diccionarios porque aun tenia muchas dudas de como realizar comparaciones con ellos, pero de hecho ya me quedo claro :)!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar