App de estudio con tarjetas didácticas
Zee Oye, mira. Tengo el examen de sistemas de propulsión en seis semanas y aprendo mucho mejor poniéndome a prueba a mí mismo. ¿Puedes hacer una app de tarjetas didácticas? Que cargue las tarjetas desde un archivo, me muestre el frente, yo escriba mi respuesta y me diga si acerté. Y quiero que guarde mi progreso para poder retomar donde lo dejé. Por favor 🙏
Lo que vas a construir
Mazo: python-basics.json (12 tarjetas)
Frente: ¿Qué devuelve len() para una cadena?
Tu respuesta: el número de caracteres
¡Correcto!
Frente: ¿Qué tipo devuelve siempre input()?
Tu respuesta: int
Incorrecto. La respuesta es: str
---
Sesión completada: 8/12 correctas.
Progreso guardado.Lo que vas a necesitar
- Clases y objetos — una clase
Cardy una claseDeckte dan una forma limpia de modelar los datos - Archivos y excepciones — cargar y guardar el mazo desde un archivo JSON, manejar la ausencia del archivo en la primera ejecución
- Módulos y la biblioteca estándar —
jsonpara manejar archivos,randompara barajar - Diccionarios y listas — la estructura subyacente antes de envolverla en clases
- Flujo de control — recorrer el mazo, ramificar según si es correcto o incorrecto
Pistas
Empieza por los datos, no por las clases. Una tarjeta son dos cadenas: frente y reverso. Un mazo es una lista de tarjetas. Haz que eso funcione primero, y luego envuélvelo en clases si quieres una interfaz más limpia.
JSON se encarga del formato del archivo. json.load() lee un archivo y lo convierte en una lista o diccionario de Python. json.dump() lo escribe de vuelta. El módulo json está en la biblioteca estándar.
Envuelve la carga del archivo en try/except. La primera vez que se ejecute el script, el archivo de guardado no existirá. Capturar FileNotFoundError te permite empezar con un mazo vacío sin problemas en lugar de que el programa falle.
Para ir más allá
Una vez que el bucle principal de estudio funcione:
- Repetir respuestas incorrectas. Lleva un registro de cuáles tarjetas falló el jugador y recórrelas de nuevo al final de la sesión.
- Múltiples mazos. Lista los archivos
.jsondisponibles en una carpeta y permite al usuario elegir qué mazo estudiar. - Repetición espaciada. Registra cuántas veces se respondió correctamente cada tarjeta. Muestra con más frecuencia las tarjetas que se respondieron correctamente menos veces.

