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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -15
app.py CHANGED
@@ -67,7 +67,7 @@ def generar_preguntas(num_preguntas=38):
67
  return []
68
 
69
  # Aplicación Streamlit
70
- st.title("*Las preguntas tardan 2 minutos en generarse")
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(f"Selecciona una opción para la pregunta {i+1}:",
89
- opciones,
90
- key=f"pregunta_{i}")
91
- respuesta_indice = opciones.index(respuesta)
92
- respuestas_usuario.append(respuesta_indice)
 
93
 
94
- # Mostrar si la respuesta es correcta o incorrecta inmediatamente
95
- if respuesta_indice == pregunta.get('respuesta_correcta', 0):
96
- st.success("¡Correcto!")
97
- else:
98
- st.error(f"Incorrecto. La respuesta correcta es: {opciones[pregunta.get('respuesta_correcta', 0)]}")
 
 
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 = sum(1 for user, pregunta in zip(respuestas_usuario, st.session_state.preguntas)
107
- if user == pregunta.get('respuesta_correcta', 0))
108
- st.write(f"Has acertado {correctas} de {len(st.session_state.preguntas)} preguntas.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ """)