teslariu

agenda con dccionarios

May 20th, 2023
812
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.25 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. ## Ej DIFICIL: hacer un menu que administre una agenda de tel
  5. ## Un numero unico por cada contacto
  6. """
  7. 1. Agregar contacto
  8. 2. Modificar numero
  9. 3. Modificar nombre
  10. 4. Consultar numero
  11. 5. Consultar nombre
  12. 6. Imprimir agenda
  13. 7. Modificar numero
  14. 8. Salir
  15.  
  16. agenda = {"34344":"Kenny", "8868-898":"Ana"}
  17. """
  18. agenda = {}
  19.  
  20. def borrarPantalla():
  21.     import os
  22.     if os.name == "posix":
  23.         os.system ("clear")
  24.     else:
  25.         os.system ("cls")
  26.        
  27.  
  28. def agregar_contacto():
  29.     global agenda
  30.     nombre = input("Ingrese el nombre: ")
  31.     numero = input("Ingrese el nro de teléfono: ")
  32.     numeros = list(agenda.keys())
  33.     if numero in numeros:
  34.         return "ERROR: Ya existe el número"
  35.     agenda[numero] = nombre
  36.     return "Contacto añadido"
  37.    
  38.    
  39.    
  40.        
  41. def modificar_numero():
  42.     global agenda
  43.     nombre = input("Ingrese el nombre: ")
  44.     nombres = list(agenda.values())
  45.     if nombre in nombres:
  46.         # debo borrar antes el nro viejo
  47.         for k,v in agenda.items():
  48.             if v == nombre:
  49.                 del(agenda[k])  # borro el nro
  50.                 break
  51.         # agrego el nuevo nro        
  52.         numero = input("Ingrese el nuevo número: ")
  53.         agenda[numero] = nombre
  54.         return "Numero modificado"
  55.        
  56.     else:
  57.         return f"No existe el contacto {nombre}"
  58.  
  59.  
  60. def modificar_nombre():
  61.     global agenda
  62.     nombre = input("Ingrese el nombre a modificar: ")
  63.     nombre_nuevo = input("Ingrese el nuevo nombre: ")
  64.     hallado = False
  65.     for k,v in agenda.items():
  66.         if v == nombre:
  67.             agenda[k] = nombre_nuevo
  68.             hallado = True
  69.     if hallado:
  70.         return f"Nombre modificado correctamente"
  71.     else:
  72.         return f"No se encontró el contacto {nombre}"
  73.        
  74.        
  75. def hallar_numero():
  76.     global agenda
  77.     nombre = input("Ingrese el nombre: ")
  78.     for k,v in agenda.items():
  79.         if v == nombre:
  80.             return k
  81.     return f"No se encontró el contacto {nombre}"
  82.    
  83.  
  84. def hallar_nombre():
  85.     global agenda
  86.     numero = input("Ingrese el numero: ")
  87.     for k,v in agenda.items():
  88.         if k == numero:
  89.             return v
  90.     return f"No se encontró el contacto con nro {numero}"
  91.  
  92.  
  93. def imprimir_agenda():
  94.     global agenda
  95.     if agenda:
  96.         for k,v in agenda.items():
  97.             print(k,v)
  98.     else:
  99.         print("Agenda vacía")
  100.        
  101.        
  102. def eliminar_contacto():
  103.     global agenda
  104.     nombre = input("Ingrese el nombre: ")
  105.     nombres = list(agenda.values())
  106.     if nombre in nombres:
  107.         for k,v in agenda.items():
  108.             if v == nombre:
  109.                 del(agenda[k])  # borro el nro
  110.                 return "Contacto borrado"
  111.     return f"No existe el contacto {nombre}"
  112.          
  113.        
  114. ##########################################################        
  115.  
  116. titulo = "Agenda telefónica"
  117.  
  118. menu_de_opciones = """
  119.    Ingrese el número de la operación que desea ejecutar:
  120.    1. Agregar contacto         5. Hallar nombre
  121.    2. Modificar numero         6. Imprimir agenda
  122.    3. Modificar nombre         7. Eliminar contacto        
  123.    4. Hallar numero            8. Salir
  124. """
  125.  
  126. while True:
  127.     borrarPantalla()
  128.    
  129.     print(titulo)
  130.     print(menu_de_opciones)
  131.     opcion = input(">>> ")
  132.    
  133.     if opcion == "1":
  134.         print(agregar_contacto())
  135.        
  136.                
  137.            
  138.     elif opcion == "2":
  139.         print(modificar_numero())
  140.            
  141.        
  142.        
  143.     elif opcion == "3":
  144.         print(modificar_nombre())
  145.            
  146.      
  147.  
  148.     elif opcion == "4":
  149.         print(hallar_numero())
  150.        
  151.        
  152.        
  153.        
  154.     elif opcion == "5":            
  155.         print(hallar_nombre())
  156.        
  157.        
  158.        
  159.        
  160.  
  161.        
  162.        
  163.     elif opcion == "6":
  164.         imprimir_agenda()
  165.        
  166.        
  167.        
  168.        
  169.     elif opcion == "7":
  170.         print(eliminar_contacto())
  171.        
  172.        
  173.        
  174.        
  175.      
  176.        
  177.     elif opcion == "8":
  178.         print("Gracias por utilizar este programa...")
  179.         break
  180.        
  181.     else:
  182.         print("Opción incorrecta")
  183.  
  184.  
  185.     input("\nPresione cualquier tecla para continuar")
  186.  
Advertisement
Add Comment
Please, Sign In to add comment