Skip to content
This page has been auto-translated and may contain errors.View in English

Libreta de contactos

Pip ¡Hola! Tengo contactos dispersos en seis estaciones y siempre los pierdo de vista. Números, correos, todo regado por ahí. ¿Puedes construir una libreta de contactos sencilla que pueda ejecutar en una terminal? Agregar personas, buscar por nombre, listar a todos. Nada elegante, solo algo que realmente funcione 🙏

Lo que vas a construir

Commands: add / search / list / quit

> add
Name: Sofía Ramírez
Phone: 07700 900123
Email: [email protected]
Saved.

> search
Name: sofia
Sofía Ramírez — 07700 900123 — [email protected]

> list
1. Sofía Ramírez — 07700 900123
2. ...

> quit

Lo que vas a necesitar

  • Diccionarios — cada contacto es un diccionario; la libreta de contactos es una lista de ellos
  • Listas — todos los contactos juntos en una sola lista que puedes recorrer
  • Funciones — una función por comando mantiene todo limpio y legible
  • Flujo de control — un bucle que se ejecuta hasta que el usuario escriba "quit"
  • Cadenas — búsqueda sin distinguir mayúsculas y minúsculas, formato de nombres

Pistas

Almacena cada contacto como un diccionario. Claves como "name", "phone", "email". Mantén todos los contactos en una lista fuera del bucle para que persistan entre comandos.

Un bucle while con una verificación de comando es la estructura natural. Lee el comando, llama a la función correcta, repite. Sal del bucle cuando el usuario escriba "quit".

Para la búsqueda, la coincidencia parcial es más útil que la exacta. Verificar si el término de búsqueda aparece en cualquier parte del nombre — sin distinguir mayúsculas y minúsculas — significa que "sofia" encuentra "Sofía Ramírez".

Yendo más lejos

Una vez que el bucle principal funcione:

  • Guardar y cargar. Cuando el usuario salga, escribe todos los contactos en un archivo JSON. Cuando el script se inicie, carga ese archivo si existe. Esto requiere el capítulo de archivos.
  • Eliminar un contacto. Agrega un comando delete que elimine un contacto por nombre.
  • Lista ordenada. Ordena la salida de la lista alfabéticamente por nombre antes de imprimirla.