Ejercicio de programación: Reto acceso a sistema
Este ejercicio de programación está diseñado para poner a prueba tus conocimientos en Python. Es un ejercicio de nivel intermedio que requiere conocimientos sólidos de la tecnología.
Información adicional del ejercicio
Desarrollar un sistema de autenticación en Python que gestione usuarios, contraseñas y diferentes niveles de acceso.
Contenido del ejercicio
-
Configura la estructura del proyecto: Crea un archivo principal
main.pyy un directoriodatapara almacenar los archivos JSON y logs. Crea un archivousers.jsonvacío con una estructura inicial{"users": []}y un archivoaccess_log.txtvacío. -
Implementa las funciones de gestión de usuarios: Crea un módulo
user_manager.pycon funciones para registrar usuarios, validar contraseñas y guardar/cargar información del archivo JSON. La validación de contraseñas debe exigir al menos 8 caracteres, una mayúscula, un número y un carácter especial. -
Desarrolla el sistema de autenticación: Crea un módulo
auth.pyque contenga funciones para verificar credenciales, gestionar intentos fallidos y asignar niveles de acceso. Implementa la encriptación de contraseñas utilizando la bibliotecahashlibcon salting. -
Implementa el sistema de logging: Crea un módulo
logger.pyque registre cada intento de acceso al sistema con fecha, hora, nombre de usuario y resultado (éxito/fracaso). Asegúrate de que cada entrada tenga un formato consistente. -
Crea el menú principal: En
main.py, implementa un menú interactivo por consola que ofrezca opciones de registro, inicio de sesión y salida. El menú debe ser claro y guiar al usuario a través del proceso. -
Desarrolla menús específicos por rol: Implementa diferentes menús según el nivel de acceso del usuario (administrador, estándar, invitado). Los administradores deben poder ver y modificar usuarios, los usuarios estándar cambiar su contraseña, y los invitados solo consultar información básica.
-
Implementa la gestión de administradores: Crea funciones que permitan a los administradores listar usuarios, cambiar roles y desbloquear cuentas bloqueadas por intentos fallidos.
-
Añade la funcionalidad de bloqueo de cuentas: Implementa un mecanismo que bloquee una cuenta después de tres intentos fallidos consecutivos de inicio de sesión y registre este evento en el log.
-
Prueba exhaustivamente el sistema: Verifica que todas las funcionalidades trabajen correctamente: registro, login, bloqueo de cuentas, gestión de administradores y logging de eventos.
Más ejercicios de Python
Explora más ejercicios de programación en Python para mejorar tus habilidades y obtener tu certificación.
Ver más ejercicios de PythonExplora el curso completo de Python
Descubre más contenido de Python con lecciones, ejercicios y módulos organizados para tu aprendizaje.
Lecciones de Python
Aprende los conceptos fundamentales con tutoriales detallados
Ejercicios de Python
Practica con más ejercicios de programación
Módulos de Python
Explora todos los módulos del curso organizados por temas
Curso completo de Python
Ver el temario completo con todos los contenidos del curso
Todas las tecnologías
Explora todos los cursos de programación disponibles
Cursos que incluyen este ejercicio
Este ejercicio forma parte de los siguientes cursos estructurados con rutas de aprendizaje
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Python es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear ejercicios prácticos y contenido educativo de calidad para desarrolladores de todos los niveles.
Solución al ejercicio de programación en Python
¡Desbloquea la solución completa!
Completa el ejercicio de programación en Python para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en Python
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Ejercicios de programación en Python: Práctica y Certificación
Los ejercicios de programación son fundamentales para dominar Python. Este ejercicio está diseñado para poner a prueba tus conocimientos prácticos y ayudarte a consolidar lo aprendido en las lecciones teóricas. La práctica constante con ejercicios de programación es la clave para convertirte en un desarrollador experto.
¿Por qué resolver ejercicios de programación?
Resolver ejercicios de programación en Python te permite:
- Aplicar conocimientos teóricos: Poner en práctica los conceptos aprendidos en las lecciones de Python.
- Identificar áreas de mejora: Descubrir qué conceptos necesitas reforzar en tu aprendizaje de Python.
- Prepararte para certificaciones: Los ejercicios te preparan para obtener certificados profesionales en Python.
- Mejorar tu perfil profesional: Demostrar tus habilidades prácticas en Python.
Metodología de aprendizaje
Nuestros ejercicios de programación están diseñados siguiendo una metodología probada de aprendizaje progresivo. Cada ejercicio en Python está cuidadosamente estructurado para llevar tus habilidades al siguiente nivel. Comenzamos con conceptos fundamentales y avanzamos gradualmente hacia desafíos más complejos que reflejan situaciones reales del desarrollo de software profesional.
Certificación y validación de conocimientos
Al completar ejercicios de programación, no solo mejoras tus habilidades técnicas, sino que también puedes obtener certificados que validan tu expertise en Python. Estos certificados son reconocidos por empresas y pueden ser una gran adición a tu perfil profesional de LinkedIn o tu CV como desarrollador.
Los ejercicios están alineados con los estándares de la industria y cubren desde conceptos básicos hasta técnicas avanzadas de programación en Python. Cada ejercicio incluye casos de prueba y ejemplos prácticos que te ayudarán a comprender mejor cómo aplicar lo aprendido en proyectos reales.