0% encontró este documento útil (0 votos)
0 vistas3 páginas

Guión Python

Cargado por

jesdiamat04
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas3 páginas

Guión Python

Cargado por

jesdiamat04
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

2. Fichero: confirmaciones.

py (La Red de Seguridad)


"Empezaré por el módulo de confirmaciones. Este fichero es el encargado de validar las
intenciones del usuario antes de ejecutar acciones críticas."

Explicación técnica (Casi línea a línea):

●​ Función confirmar_accion_general(mensaje):
○​ Esta es nuestra función base. Recibe un mensaje personalizado.
○​ Limpieza de datos: Usamos .strip().lower() para que el programa
entienda la respuesta sin importar si el usuario usa mayúsculas o deja
espacios.
○​ Bucle de Validación: Implementé un while respuesta not in ['s',
'n']. Esto obliga al usuario a dar una respuesta válida; el programa no
'asume' nada, simplemente insiste hasta recibir una instrucción clara.
●​ Funciones Especializadas:
○​ confirmar_eliminar_usuario: Muestra específicamente el Nombre y
DNI del usuario para que no haya dudas de a quién se está borrando.
○​ confirmar_sobrescribir_fichero: Lanza una advertencia sobre la
posible pérdida de datos antes de llamar a la función general.

3. Fichero: [Link] (El Centro de Operaciones)


"Este es el fichero más extenso porque gestiona todo lo que el usuario ve en pantalla. Se
apoya constantemente en los módulos de validaciones y datos."

MODULOS =

-​ OS: interactuar con el sistema de archivos del ordenador.


-​ from validaciones import …: Importamos estas funciones para que la interfaz sea
'tonta'. La interfaz solo pregunta el dato
-​ from datos import …: traes la lógica de persistencia y memoria
-​ from confirmaciones import ... : Importamos estas herramientas para estandarizar
cómo el programa pide permiso al usuario

A. Función anadir_usuario(usuarios)

"Esta es la puerta de entrada de nuevos datos. Lo más importante aquí es el filtrado


preventivo."

●​ Líneas de validación: "Antes de procesar nada, usamos if not


es_nombre_valido(nombre):. Si la validación falla, imprimimos un mensaje de
error y usamos un return. Esto es clave: detenemos la ejecución antes de que el
error llegue a la base de datos."
●​ Normalización: "Fíjense que usamos .strip() para limpiar espacios accidentales
y .upper() en el DNI, facilitando que el usuario pueda escribir en minúsculas sin
que el sistema falle."

B. Función mostrar_usuarios(usuarios)

"Aquí el reto era la legibilidad en la consola."

●​ Formateo de tablas: "He utilizado f-strings con modificadores de alineación como


:<12 y :<25. Esto reserva un espacio fijo para cada columna, asegurando que los
datos se vean como una tabla profesional y no como una lista desordenada."

C. La lógica de Edición (editar_usuario y sus derivados)

"He estructurado la edición en tres niveles para que el código sea modular:"

1.​ editar_usuario (Menú): "Simplemente actúa como un selector entre memoria y


fichero."
2.​ editar_usuario_memoria (Edición inteligente): "Aquí hay un detalle de calidad:
permitimos que el usuario deje campos en blanco. El código verifica if
nuevo_nombre:; si no hay entrada, se mantiene el dato original. Esto mejora
mucho la experiencia de usuario."
3.​ editar_usuario_fichero (Persistencia): "Esta función es más compleja.
Primero carga los datos del archivo a una lista temporal, realiza la edición y luego
vuelve a guardar (persiste) los datos en el disco."

D. Gestión de Ficheros (guardar_fichero y cargar_fichero)

"Aquí es donde integramos la seguridad del módulo os."

●​ [Link](ruta): "Antes de guardar, verificamos si el archivo ya existe. Si


es así, disparamos una confirmación para evitar que el usuario sobrescriba datos
valiosos por error."
●​ Manejo de Excepciones: "He implementado bloques try...except para capturar
errores de lectura/escritura (como falta de permisos o archivo no encontrado), lo que
garantiza que el programa no 'explote' ante fallos del sistema operativo."

4. Conclusión Técnica (Para el Tribunal)


"En resumen, mi parte del código asegura que:

1.​ El usuario esté guiado: No puede romper el programa con entradas inválidas.
2.​ Los datos sean persistentes: Gestionamos ficheros externos de forma segura.
3.​ El sistema sea mantenible: Al separar las confirmaciones en un fichero aparte, si
mañana queremos cambiar el idioma de la aplicación, solo tenemos que tocar un
archivo."
Posibles preguntas "trampa" y cómo
responderlas
●​ ¿Por qué usas [Link] en lugar de solo intentar abrir el archivo?
○​ Respuesta: "Es una medida de programación defensiva. Verificar la
existencia antes de operar evita que el programa se detenga bruscamente
con un error de sistema (FileNotFoundError) y nos permite dar un mensaje
amigable al usuario".
●​ ¿Qué pasa si el usuario responde algo distinto a 's' o 'n' en una confirmación?
○​ Respuesta: "Gracias al bucle while en confirmar_accion_general, el
sistema rechazará la entrada y volverá a preguntar infinitamente hasta que la
respuesta sea válida".
●​ ¿Cómo aseguras que el DNI esté en mayúsculas?
○​ Respuesta: "En la interfaz aplicamos .upper() inmediatamente después de
recibir el input, normalizando el dato antes de validarlo o guardarlo".

También podría gustarte