GAS17 commited on
Commit
a71656c
·
verified ·
1 Parent(s): d879ba9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -40
app.py CHANGED
@@ -76,48 +76,42 @@ if 'preguntas' not in st.session_state or not st.session_state.preguntas:
76
  # Botón para generar nuevas preguntas
77
  if st.button("Generar nuevas preguntas"):
78
  st.session_state.preguntas = generar_preguntas()
79
- st.session_state.respuestas_enviadas = False
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
-
104
- submitted = st.form_submit_button("Enviar respuestas")
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")
 
76
  # Botón para generar nuevas preguntas
77
  if st.button("Generar nuevas preguntas"):
78
  st.session_state.preguntas = generar_preguntas()
79
+ for i in range(len(st.session_state.preguntas)):
80
+ if f"respuesta_{i}" in st.session_state:
81
+ del st.session_state[f"respuesta_{i}"]
82
+
83
+ # Mostrar preguntas y opciones
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
+ f"Selecciona una opción para la pregunta {i+1}:",
90
+ options=opciones,
91
+ key=f"respuesta_{i}",
92
+ index=None
93
+ )
94
+
95
+ # Evaluar la respuesta en tiempo real
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  if respuesta:
97
+ respuesta_indice = opciones.index(respuesta)
98
+ if respuesta_indice == pregunta.get('respuesta_correcta', 0):
99
+ st.success("¡Correcto!")
100
+ else:
101
+ st.error(f"Incorrecto. La respuesta correcta es: {opciones[pregunta.get('respuesta_correcta', 0)]}")
 
102
  else:
103
+ st.warning(f"No hay opciones disponibles para la pregunta {i+1}")
104
+
105
+ # Calcular y mostrar el resultado en tiempo real
106
+ correctas = sum(1 for i, pregunta in enumerate(st.session_state.preguntas)
107
+ if f"respuesta_{i}" in st.session_state and
108
+ st.session_state.preguntas[i]['opciones'].index(st.session_state[f"respuesta_{i}"]) == pregunta.get('respuesta_correcta', 0))
109
+ total_respondidas = sum(1 for i in range(len(st.session_state.preguntas)) if f"respuesta_{i}" in st.session_state)
110
+
111
+ if total_respondidas > 0:
112
+ st.write(f"Has acertado {correctas} de {total_respondidas} preguntas respondidas.")
113
+ else:
114
+ st.info("Aún no has respondido ninguna pregunta.")
115
 
116
  # Información adicional en la barra lateral
117
  st.sidebar.title("Información sobre el cuestionario")