Gestor de Contactos en Python
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
Proyecto anterior