Page cover

💿Caso práctico: Agenda

En este ejercicio práctico se propone la implementación de una agenda digital muy simple en la que puedas almacenar y consultar tus contactos.

1. Implementando la agenda digital y los contactos

Lo primero que debemos hacer para implementar nuestra agenda digital es seleccionar la estructura de datos que va a almacenar los contactos de la misma.

Crea un diccionario que represente la agenda digital. Dentro de ese diccionario, crea otro diccionario por cada uno de los contactos que quieras almacenar en ella. Los contactos deben tener, al menos, los siguientes atributos: Nombre, dirección, email y teléfono.

Pista: Utiliza algo característico de cada contacto como clave del primer diccionario, por ejemplo, su nombre completo.

agenda_digital = {
    # Primer contacto de la agenda
    "Alex Fernandez": {
        "Dirección": "Calle Lorem Ipsum 57", 
        "Email": "lorem@ipsum.com", 
        "Teléfono": "696 66 99 66", 
    }, # Tienen que separarse por comas
    # Segundo contacto de la agenda
    "Fernando Moreno": {
        "Dirección": "Calle Ipsum Lorem 89", 
        "Email": "ipsum@lorem.com", 
        "Teléfono": "649 55 44 33", 
    }
}

agenda_digital["Alex Fernandez"]
{'Dirección': 'Calle Lorem Ipsum 57',
 'Email': 'lorem@ipsum.com',
 'Teléfono': '696 66 99 66'}
 
agenda_digital["Fernando Moreno"]
{'Dirección': 'Calle Ipsum Lorem 89',
 'Email': 'ipsum@lorem.com',
 'Teléfono': '649 55 44 33'}

2. Guarda la agenda digital en un fichero en disco

Una vez que hemos implementado nuestra agenda digital en Python, necesitamos establecer un mecanismo para almacenar esta información en disco. De esta manera, la información que almacenemos en la agenda no se perderá cuando finalice la ejecución del programa.

Implementa una función en Python que permita escribir en disco la agenda digital que has representado en el apartado anterior como un diccionario.

Pista: Entre las funciones por defecto que veíamos en secciones anteriores, existe una función open() que nos permite realizar operaciones de lectura y escritura de ficheros.

Pista 2: Una vez que hayas leído el fichero en el que vas a escribir tu agenda digital utilizando la función open() y se lo hayas asignado a una variable agenda_fichero, utiliza el método agenda_fichero.write() para escribir el diccionario en el fichero. Por el momento no hace falta que comprendas que son los métodos, lo veremos más adelante en el curso.

Pista 3: Recuerda que debes escribir una función, te recomiendo que tu función tenga una definición similar a la siguiente:

3. Lee la agenda digital de un fichero en disco

Ahora que ya hemos definido como va a ser nuestra agenda digital y hemos implementado una función para escribirla en disco y no perder la información que guardamos en ella, lo siguiente que debemos hacer es escribir otra función que nos permita leer ese fichero cada vez que queramos consultar algún contacto.

Implementa una función en Python que nos permita leer el fichero en el que has escrito la agenda digital y has almacenado en disco en el apartado anterior.

Pista: La función por defecto open() nos permite proporcionarle varios argumentos, entre los que se encuentra uno que nos permite leer un fichero en modo lectura

Pista 2: Una vez que hayas leído el fichero en el que se encuentra tu agenda digital utilizando la función open() y se lo hayas asignado a una variable agenda_digital_lectura, utiliza el método agenda_digital_lectura.readlines() para leer todas las líneas del fichero. Por el momento no hace falta que comprendas que son los métodos, lo veremos más adelante en el curso.

Comprueba la información que se encuentra en la variable agenda_digital.

  • ¿Qué tipo de dato es?

  • ¿En qué posición se encuentra el diccionario que representa tu agenda?

  • ¿Qué tipo de dato es este diccionario? ¿Puedes acceder a sus claves?

Pista 3: Como habrás podido observar, el diccionario que representa nuestra agenda digital, cuando lo hemos leído con la función open() a partir del fichero en el que se encontraba almacenado viene representado con tipo str. Conviértelo de nuevo en un diccionario, para ello, échale un ojo a la función por defecto de Python eval().

Pista 4: Recuerda que debes escribir una función, te recomiendo que tu función tenga una definición similar a la siguiente:

4. Crea un menu para introducir un nombre en la agenda

Si has llegado hasta este apartado, ¡enhorabuena! ya has implementado gran parte de la funcionalidad de nuestra agenda digital. Ahora que tenemos funciones para escrbir y leer la agenda de un fichero que se encuentra almacenado en disco, necesitamos una función que nos permita crear nuevos contactos dentro de nuestra agenda.

Crea una función en Python que solicite los datos de un nuevo contacto de la agenda por pantalla al usuario y cree una nueva entrada en nuestra agenda digital

Pista: Divide este apartado en dos funciones. En la primera función implementa el código que solicite al usuario por pantalla los campos necesarios para un nuevo contacto de la agenda. En la segunda función, implementa el código necesario para crear este nuevo contacto en la agenda digital. Te recomiendo que las funciones tengan una definición similar a la siguiente:

5. Crea un menu para consultar un nombre de la agenda

¡Genial! Ya casi hemos terminado. Implementa una funcionalidad más en nuestra agenda que nos permita leer los datos relativos a un contacto existente.

Implementa una función en Python que solicte por pantalla el nombre completo de un contacto de la agenda y, a partir de ese nombre, nos proporcione el resto de información: dirección, email y teléfono...

6. Pon todo en común

Pon en común todas las funciones que has implementado en las secciones anteriores para mostrar la funcionalidad de tu agenda digital.

6.1. Crea un nuevo contacto en la agenda

  1. Lee la agenda digital de disco

  2. Solicita los datos de un nuevo contacto por pantalla al usuario

  3. Crea un nuevo contacto en la agenda digital

  4. Escribe la agenda resultante en disco

6.2. Consulta un contacto existente de la agenda digital

  1. Lee la agenda digital de disco

  2. Consulta un contacto existente

7. Evolución del programa

Aquí podéis ver una evolución de este programa, añadiendo más funcionalidades

Última actualización