Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Flemon en Enero 19, 2013, 12:17:58 AM

Título: [SOLUCIONADO] Problema con simple cuestionario
Publicado por: Flemon en Enero 19, 2013, 12:17:58 AM
 Hola a todos, bueno, aca mientras estudio para rendir una materia, se me dio por hacer un simple cuestionario,y cada tanto lo voy probando para ver si sale algun bug o error inesperado, en eso me tope que una de las preguntas correcta me la toma como falsa:

(http://i.imgur.com/mapMOz9.jpg)

y aca la otra

(http://i.imgur.com/DRb81LC.jpg)

Aca les dejo el code para que le echen un vistazo a ver que puede ser

Código (python) [Seleccionar]
# -*- coding: utf-8 -*-
#Cuestionario Creado por Flemon
#
#
# En el se trataran temas del cursado de Moleculas a Celulas de la
#
#
# Todos los derechos reservados al autor
#
# Para comunicart escribeme a: [email protected]
#
import sys
print 'Cuestionario Moleculas a Celulas 1.2'
print ''
print 'Universidad del Aconcagua'
print ''
raw_input('Preciona Enter para continuar')
print''
a=float(raw_input('Cuantos son los aa escenciales: '))
if a == 9:
print 'Correcto'
elif a != 9:
print 'INCORRECTO,vuelve a estudiar'
sys.exit(0)
print ''
print 'Cuales son los aa escenciales?'
print ''
print '1- leucina valina metionina triptofano fenilalanina isoleusina treonina histidina arginina'
print '2- Valina,metionina,triptofano,fenilalanina,isoleusina,biotina,histidina,arginina,treonina'
print '3- triptofano,valina,metionina,fenilalanina,isoleusina,creatinina.histidina,arginina,treonina'
print ''
b = float(raw_input('Ingresa el numero de la opcion correcta: '))
if b == 1:
print 'CORRECTO, SIGAMOS'
elif b != 1:
print 'Mal mal, comienza devuelta'
sys.exit(0)
print ''
print 'El punto isoelectrico es: '
print ''
print 'el ph al cual la molecula de aa es acida'
print 'el ph al cual la molecula de aa es neutra'
print 'el ph al cual la molecula de aa es basica'
c=raw_input('ingresa tu respuesta TEXTUAL: ')
print ''
print ''
if c == 'el ph al cual la molecula de aa es neutra':
print 'CORRECTO,vamos por la que sigue'
elif c!= 'el ph al cual la molecula de aa es neutra':
print 'INCORRECTO,volve a comenzar del principio'
sys.exit(0)
print ''
print ''
print 'La union PEPTIDICA es:'
print ''
print 'union quimica entre aa con ganancia de agua'
print 'union quimica entre aa sin alteracion del agua'
print 'union quimica entre aa con perdida de agua'
print ''
d=raw_input('ingresa tu respuesta TEXTUAL: ')
if d=='union quimica entre aa con perdida de agua':
print 'GENIAL,vas por un buen camino, vamos por mas'
elif d!='union quimica entre aa con perdida de agua':
print 'Mal,Mal,Mal,anda urgente a seguir estudiando'
sys.exit(0)
print ''
print ''
print 'PASEMOS A VITAMINAS'
print ''
print ''
print 'Que son las VITAMINAS?'
print ''
print '1- Son Enzimas'
print '2- Son Coenzimas'
print ''
e = raw_input('ingresa el numero de la respuesta correcta: ')
if e == 2:
print 'bien, bien, continuemos que el tema es facil'
print ''
elif e==1:
print 'No, No no, es facil, volve a empezar por tu burrada'
sys.exit(0)
print ''
print ''
print 'Cuales son los Liposolubles? '
print ''
print '1- A,D,E,K'
print '2- B1,B2,B3,B5,B6,B8,B9,B12,C'
print ''
f= raw_input('ingresa el numero de la respuesta correcta: ')
if f == 1:
print 'Vamos nomas, continuemos con el cuestionario que es facil la cosa'
elif f != 2:
print 'Agggg, eso lo tenes que saber como tu propio nombre'
sys.exit(0)
print ''
print ''
print 'La vitamina A como se llama?'
print ''
print 'tocoferol'
print 'retinol'
print 'calciferol'
print ''
g= raw_input('ingresa  la respuesta correcta TEXTUALMENTE: ')
if g== 'retinol':
print 'Biiiiieeeeeen, continuemos'
elif g!= 'retinol':
print 'Anda a repasar y volve'
sys.exit(0)
print ''
print 'la funcion de la vitamina A es: '
print ''
print 'mantenimiento de la piel mucosas y diente'
print 'formacion de adn y arn'
print ''
h  = raw_input('ingresa TEXTUALMENTE la respuesta correcta: ')
if h == 'mantenimiento de la piel mucosas y diente':
print 'Biiiiieeeeeen'
elif h != 'mantenimiento de la piel mucosas y diente':
print 'volve a repasar'
sys.exit(0)
print ''
print 'la funcion de la vitamina D es:'
print ''
print '1- Absorcion de Mg+ '
print '2- Absorcion de K'
print '3- Absorcion de Ca'
print ''
i = raw_input('Ingresa el numero de tu respuesta: ')
if i== 3:
print 'Si, esa es la correcta'
elif i != 3:
print 'No era esa la respuesta correcta'
sys.exit(0)
print ''
print 'la funcion de la vitamina E es: '
print ''
print '1- formacion de anticuerpos'
print '2- formacion de adn,arn y globulos rojos'
print '3- mantenimiento general de la retina'
print ''
j = raw_input('Ingresa el numero de tu respuesta: ')
if j== 2:
print 'Correcto,SIGAMOS'
elif j != 2:
print 'No, volve de cero'
sys.exit(0)
print ''
print 'la funcion de la vitamina K es: '
print ''
print '1- La formacion de anticuerpos'
print '2- antioxidante'
print '3- Necesaria para la coagulacion sanguinea'
print ''
k = raw_input('Ingresa el numero de tu respuesta: ')
if k== 3:
print 'bien, continuemos'
elif k != 3:
print ' No, estas mal'
sys.exit(0)
print ''
print 'Pasemos a Electrolitos'
print ''
print ''
print 'Cual es el principal cation del liquido extracelular?: '
print ''
print '1- El Na+'
print '2- El Mg'
print '3- El K'
print ''
l=raw_input('Ingresa el numero de tu respuesta: ')
if l== 1:
print 'Correcto'
elif l!= 1:
print 'No, esta mal eso'
sys.exit(0)
print ''
print 'El Na que efectos causa?'
print ''
print '1- Irritabilidad Muscular, equilibrio osmotico, volumen intracelular,equilibrio acido-base,permeabilidad capilar'
print '2- Irritabilidad Muscular, equilibrio osmotico, volumen extracelular, equilibrio acido-base, permeabilidad capilar'
print ''
m = raw_input('Ingresa el numero de tu respuesta: ')
if m== 2:
print 'bien'
elif m!= 2:
print 'No, mal '
sys.exit (0)


Título: Re:Problema con simple cuestionario
Publicado por: Once en Enero 19, 2013, 12:52:40 AM
Hola,

Tu error está acá:

Código (python) [Seleccionar]
f= raw_input('ingresa el numero de la respuesta correcta: ')
if f == 1:
print 'Vamos nomas, continuemos con el cuestionario que es facil la cosa'
elif f != 2:
print 'Agggg, eso lo tenes que saber como tu propio nombre'
sys.exit(0)


raw_input te regresa una cadena y tu estás comparando un entero (no es lo mismo un "1" a un 1) así que la solución es simple y tienes dos opciones:

1) convierte lo que te regresa la función a entero con la función int()
2) Encierra entre "" los números para que Python los tome como cadenas.

Y ahora un pequeño consejo para ahorrar caracteres: en los condicionales no es necesario que uses elif, ya que sólo evaluas dos posibles respuestas, la correcta y la verdadera. Así que puedes acortar code usando sólo else:

Código (python) [Seleccionar]
if f == 1:
print 'Vamos nomas, continuemos con el cuestionario que es facil la cosa'
else:
print 'Agggg, eso lo tenes que saber como tu propio nombre'
sys.exit(0)


Haría lo mismo que tu código y te ahorrarias las condiciones

Otro consejo: Puedes evitar hacer tanto print. puedes usar un sólo print y triples comillas (dobles o simples)

Código (python) [Seleccionar]

print '''
la funcion de la vitamina E es:
formacion de anticuerpos
formacion de adn,arn y globulos rojos
3- mantenimiento general de la retina
'''


PD: Te edité el post para que se viera el código.

Saludos!
Título: Re:Problema con simple cuestionario
Publicado por: Zheffho en Enero 19, 2013, 01:08:53 AM
Vaya que buena ayuda, no sabia que en Python se podia usar un solo "print"  para varias lineas, funciona en otros lenguajes?
Título: Re:Problema con simple cuestionario
Publicado por: Flemon en Enero 19, 2013, 01:19:22 AM
Muchas gracias por el dato de print, y por tu revisión en el codigo, con respecto en la parte del elif f !=2, era 1, solo que estaba experimentando a ver que pasaba, hice lo que me dijiste, pero igual me sigue marcandola como incorrecta a la opcion correcta, jajaja, es extraño
Título: Re:Problema con simple cuestionario
Publicado por: Once en Enero 19, 2013, 01:39:00 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vaya que buena ayuda, no sabia que en Python se podia usar un solo "print"  para varias lineas, funciona en otros lenguajes?

Sé que para php hay una forma similar de hacer, pero por el momento se me escapa. en otros lenguajes, la verdad lo ignoro

CitarMuchas gracias por el dato de print, y por tu revisión en el codigo, con respecto en la parte del elif f !=2, era 1, solo que estaba experimentando a ver que pasaba, hice lo que me dijiste, pero igual me sigue marcandola como incorrecta a la opcion correcta, jajaja, es extraño

Pon el código (ojala sólo la parte que te da el error) que tienes

Saludos!
Título: Re:Problema con simple cuestionario
Publicado por: 2Fac3R en Enero 19, 2013, 02:28:30 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vaya que buena ayuda, no sabia que en Python se podia usar un solo "print"  para varias lineas, funciona en otros lenguajes?

En php es algo asi:

Código (php) [Seleccionar]

<?php

echo <<<cadena

Imprimiendo en varias lineas <br>
como en python xD <br>

cadena
?>



Igual lo podemos hacer simplemente asi:

Código (php) [Seleccionar]
<?php
echo "cadena

Imprimiendo en varias lineas <br>
como en python xD <br>

cadena"
;
?>


:D
Zalu2
Título: Re:Problema con simple cuestionario
Publicado por: Flemon en Enero 19, 2013, 07:29:04 AM
Ya lo solucione, era sencillo, me habia comido la funcion float(), jajajaja,  :o

ahora me quedo asi ese fragmento:

Código (python) [Seleccionar]
print '''
Cuales son los Liposolubles?
1- A,D,E,K
2- B1,B2,B3,B5,B6,B8,B9,B12,C
'''
f= float(raw_input('ingresa el numero de la respuesta correcta: '))
if f == 1:
print 'Vamos nomas, continuemos con el cuestionario que es facil la cosa'
elif f!= 1:
print 'Agggg, eso lo tenes que saber como tu propio nombre'
sys.exit(0)


como me había olvidado de eso, jajaja, muchísimas gracias a todos, ya lo voy a subir completo, el temario entra hasta histología, capas a alguien en un futuro le sea de ayuda, tanto para orientarse de como formar un cuestionario con python o repaso de biologia, jajajaja  ;D

muchas gracias 11Sep por tu ayuda
Título: Re:[SOLUCIONADO] Problema con simple cuestionario
Publicado por: Once en Enero 21, 2013, 09:22:01 PM
Hola brother,

Si bien diste con la solución, recuerda que Python es fuertemente tipado, así que debes tener cuidado en un futuro con los tipos si no quieres tener problemas con tus proximos scripts.

Saludos!