Update app.py
Browse files
app.py
CHANGED
@@ -67,7 +67,7 @@ def generar_preguntas(num_preguntas=38):
|
|
67 |
return []
|
68 |
|
69 |
# Aplicación Streamlit
|
70 |
-
st.title("
|
71 |
|
72 |
# Inicializar o cargar preguntas
|
73 |
if 'preguntas' not in st.session_state or not st.session_state.preguntas:
|
@@ -80,22 +80,24 @@ if st.button("Generar nuevas preguntas"):
|
|
80 |
|
81 |
# Formulario para las preguntas
|
82 |
with st.form("quiz_form"):
|
83 |
-
respuestas_usuario = []
|
84 |
for i, pregunta in enumerate(st.session_state.preguntas):
|
85 |
st.write(f"**Pregunta {i+1}:** {pregunta['pregunta']}")
|
86 |
opciones = pregunta.get('opciones', [])
|
87 |
if opciones:
|
88 |
-
respuesta = st.radio(
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
93 |
|
94 |
-
#
|
95 |
-
if
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
|
|
99 |
else:
|
100 |
st.warning(f"No hay opciones disponibles para la pregunta {i+1}")
|
101 |
|
@@ -103,6 +105,22 @@ with st.form("quiz_form"):
|
|
103 |
|
104 |
# Calcular y mostrar el resultado final
|
105 |
if submitted:
|
106 |
-
correctas =
|
107 |
-
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
return []
|
68 |
|
69 |
# Aplicación Streamlit
|
70 |
+
st.title("Cuestionario de Drones")
|
71 |
|
72 |
# Inicializar o cargar preguntas
|
73 |
if 'preguntas' not in st.session_state or not st.session_state.preguntas:
|
|
|
80 |
|
81 |
# Formulario para las preguntas
|
82 |
with st.form("quiz_form"):
|
|
|
83 |
for i, pregunta in enumerate(st.session_state.preguntas):
|
84 |
st.write(f"**Pregunta {i+1}:** {pregunta['pregunta']}")
|
85 |
opciones = pregunta.get('opciones', [])
|
86 |
if opciones:
|
87 |
+
respuesta = st.radio(
|
88 |
+
f"Selecciona una opción para la pregunta {i+1}:",
|
89 |
+
options=opciones,
|
90 |
+
key=f"pregunta_{i}",
|
91 |
+
index=None # Esto hace que no haya opción seleccionada por defecto
|
92 |
+
)
|
93 |
|
94 |
+
# Solo mostramos la retroalimentación si se ha seleccionado una respuesta
|
95 |
+
if respuesta:
|
96 |
+
respuesta_indice = opciones.index(respuesta)
|
97 |
+
if respuesta_indice == pregunta.get('respuesta_correcta', 0):
|
98 |
+
st.success("¡Correcto!")
|
99 |
+
else:
|
100 |
+
st.error(f"Incorrecto. La respuesta correcta es: {opciones[pregunta.get('respuesta_correcta', 0)]}")
|
101 |
else:
|
102 |
st.warning(f"No hay opciones disponibles para la pregunta {i+1}")
|
103 |
|
|
|
105 |
|
106 |
# Calcular y mostrar el resultado final
|
107 |
if submitted:
|
108 |
+
correctas = 0
|
109 |
+
total_respondidas = 0
|
110 |
+
for i, pregunta in enumerate(st.session_state.preguntas):
|
111 |
+
respuesta = st.session_state.get(f"pregunta_{i}")
|
112 |
+
if respuesta:
|
113 |
+
total_respondidas += 1
|
114 |
+
if pregunta['opciones'].index(respuesta) == pregunta.get('respuesta_correcta', 0):
|
115 |
+
correctas += 1
|
116 |
+
|
117 |
+
if total_respondidas > 0:
|
118 |
+
st.write(f"Has acertado {correctas} de {total_respondidas} preguntas respondidas.")
|
119 |
+
else:
|
120 |
+
st.warning("No has respondido ninguna pregunta.")
|
121 |
+
|
122 |
+
# Información adicional en la barra lateral
|
123 |
+
st.sidebar.title("Información sobre el cuestionario")
|
124 |
+
st.sidebar.write("""
|
125 |
+
|
126 |
+
""")
|