[SOLUCIONADO] Problema con simple cuestionario

Iniciado por Flemon, Enero 19, 2013, 12:17:58 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 19, 2013, 12:17:58 AM Ultima modificación: Octubre 26, 2013, 09:21:53 AM por Expermicid
 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:



y aca la otra



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

Código: python
# -*- 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)


No intentes pararme, trata de defenderte, trata de matarme, pero de cualqueir forma TE SUPERARE

Enero 19, 2013, 12:52:40 AM #1 Ultima modificación: Enero 19, 2013, 12:59:48 AM por 11Sep
Hola,

Tu error está acá:

Código: python
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
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

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!







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?

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
No intentes pararme, trata de defenderte, trata de matarme, pero de cualqueir forma TE SUPERARE

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!







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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

<?php

echo <<<cadena

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

cadena
?>


Igual lo podemos hacer simplemente asi:

Código: php
<?php
echo "cadena

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

cadena";
?>

:D
Zalu2
Sólo el conocimiento te hace libre.

Ya lo solucione, era sencillo, me habia comido la funcion float(), jajajaja,  :o

ahora me quedo asi ese fragmento:

Código: python
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
No intentes pararme, trata de defenderte, trata de matarme, pero de cualqueir forma TE SUPERARE

Enero 21, 2013, 09:22:01 PM #7 Ultima modificación: Enero 21, 2013, 09:41:09 PM por 11Sep
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!







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta