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

title: Libreta de contactos description: Una aplicación CLI que se ejecuta en un bucle para que puedas agregar, buscar y listar contactos durante una sesión.

Libreta de contactos

Pip ¡Hola! Tengo contactos dispersos en seis estaciones y siempre pierdo la pista de ellos. Números, correos electrónicos, por todos lados. ¿Puedes construir una libreta de contactos simple que pueda ejecutar en una terminal? Agregar personas, buscar por nombre, listar a todos. Nada complicado, solo algo que realmente funcione 🙏

Qué estás construyendo

Comandos: add / search / list / quit

> add
Nombre: Carlos García
Teléfono: 07700 900123
Correo electrónico: [email protected]
Guardado.

> search
Nombre: carlos
Carlos García - 07700 900123 - [email protected]

> list
1. Carlos García - 07700 900123
2. ...

> quit

Qué necesitarás

  • Diccionarios - cada contacto es un diccionario; la libreta de contactos es una lista de ellos
  • Listas - todos los contactos juntos en una lista que puedas recorrer
  • Funciones - una función por comando mantiene las cosas limpias y legibles
  • Control de flujo - un bucle que se ejecuta hasta que el usuario escribe "quit"
  • Cadenas de texto - búsqueda sin distinción de mayúsculas/minúsculas, formato de nombres

Sugerencias

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 cuando el usuario escribe "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 distinción de mayúsculas/minúsculas) significa que "carlos" encuentra "Carlos García".

Ir más allá

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 inicia, 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 imprimir.