Gestor de Contactos en Python

Gestor de Contactos en Python

Gestor de Contactos en Python

Enlace Patrocinado

Respondent.io

Respondent.io es una plataforma en línea que conecta investigadores y empresas con participantes para estudios de mercado y encuestas remuneradas. Su objetivo es facilitar la recopilación de datos cualitativos y cuantitativos mediante entrevistas, encuestas y pruebas de usuario

Proyecto 14 de la guia 50 Proyectos de Programacion para Practicar y Aprender. Proyectos para Nivel intermedio

Enunciado del proyecto

Crea un programa para almacenar y administrar una lista de contactos con información como nombre, número de teléfono y correo electrónico.

Gestor de Contactos en Python

Este programa permite almacenar y administrar una lista de contactos con nombre, número de teléfono y correo electrónico. Los datos se guardan en un archivo JSON para conservarse entre ejecuciones.

Código fuente (gestor_contactos.py)

import json
import os

CONTACTOS_FILE = "contactos.json"

def cargar_contactos():
    if os.path.exists(CONTACTOS_FILE):
        with open(CONTACTOS_FILE, "r") as f:
            return json.load(f)
    return []

def guardar_contactos(contactos):
    with open(CONTACTOS_FILE, "w") as f:
        json.dump(contactos, f, indent=4)

def agregar_contacto(contactos):
    nombre = input("Nombre: ")
    telefono = input("Teléfono: ")
    email = input("Correo electrónico: ")
    contactos.append({"nombre": nombre, "telefono": telefono, "email": email})
    guardar_contactos(contactos)
    print("Contacto agregado correctamente.\n")

def listar_contactos(contactos):
    if not contactos:
        print("No hay contactos.\n")
        return
    for idx, c in enumerate(contactos, start=1):
        print(f"{idx}. {c['nombre']} - {c['telefono']} - {c['email']}")
    print()

def buscar_contacto(contactos):
    nombre = input("Nombre a buscar: ").lower()
    encontrados = [c for c in contactos if nombre in c['nombre'].lower()]
    if encontrados:
        for c in encontrados:
            print(f"{c['nombre']} - {c['telefono']} - {c['email']}")
    else:
        print("No se encontró el contacto.")
    print()

def eliminar_contacto(contactos):
    nombre = input("Nombre del contacto a eliminar: ").lower()
    nuevos = [c for c in contactos if nombre not in c['nombre'].lower()]
    if len(nuevos) != len(contactos):
        guardar_contactos(nuevos)
        print("Contacto eliminado.\n")
    else:
        print("No se encontró el contacto.\n")

def menu():
    contactos = cargar_contactos()
    while True:
        print("=== Gestor de Contactos ===")
        print("1. Agregar contacto")
        print("2. Listar contactos")
        print("3. Buscar contacto")
        print("4. Eliminar contacto")
        print("5. Salir")
        opcion = input("Opción: ")

        if opcion == "1":
            agregar_contacto(contactos)
            contactos = cargar_contactos()
        elif opcion == "2":
            listar_contactos(contactos)
        elif opcion == "3":
            buscar_contacto(contactos)
        elif opcion == "4":
            eliminar_contacto(contactos)
            contactos = cargar_contactos()
        elif opcion == "5":
            print("¡Hasta luego!")
            break
        else:
            print("Opción inválida.\n")

if __name__ == "__main__":
    menu()

Indice de la guia de proyectos

50 Proyectos de Programacion

Groupon NOVIEMBRE DEALS Groupon llega con los mejores planes y descuentos para disfrutar al máximo la temporada. 🍂 🎟️ Actividades locales al mejor precio 💆 Bienestar, belleza y relax con descuentazos 🍽️ Restaurantes y experiencias únicas 🛍️ Ofertas exclusivas para ahorrar más 👉#colaboracion #publicidad.

Proyecto anterior

Juego de Ahorcado en Python