1+ """
2+ * EJERCICIO:
3+ * - Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje.
4+ * - Utiliza operaciones de inserción, borrado, actualización y ordenación.
5+ *
6+ * DIFICULTAD EXTRA (opcional):
7+ * Crea una agenda de contactos por terminal.
8+ * - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
9+ * - Cada contacto debe tener un nombre y un número de teléfono.
10+ * - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación
11+ * los datos necesarios para llevarla a cabo.
12+ * - El programa no puede dejar introducir números de teléfono no númericos y con más de 11 dígitos.
13+ * (o el número de dígitos que quieras)
14+ * - También se debe proponer una operación de finalización del programa.
15+ */
16+ """
17+
18+ # Listas
19+
20+ nombres = ['Maria' , 'Nushi' , 'Jose' , 'Wei' ]
21+ apellidos = [] #Lista vacía
22+
23+ matriz = [
24+ [1 , 2 , 4 , 6 , 9 ],
25+ [10 , 20 , 40 , 80 ],
26+ [11 , 22 , 33 , 44 ],
27+ ]
28+
29+ nombres .sort () # Ordenar
30+ print (nombres )
31+
32+ apellidos .append ('Smith' ) # Insertar
33+ print (apellidos )
34+
35+ # Tuplas
36+
37+ tupla1 = "Prueba" , 34214 , 3.2
38+ tupla2 = tupla1 , "Tres" , "Cuatro" , 14
39+
40+ # Conjuntos
41+
42+ frutas = {'Naranja' , 'Manzana' , 'Pera' , 'Uva' , 'Granada' }
43+ frutas .remove ('Uva' ) # Borrar
44+ print (frutas )
45+
46+
47+ # Diccionarios
48+
49+ usuario = {'nombre' : 'Marc' , 'apellido' : 'Spector' , 'oficio' : 'Agente de Inteligencia' }
50+ usuario ['nombre' ] = 'Steven' # Reemplazar
51+ print (usuario )
52+
53+
54+
55+ # ///////////////////////////////////// DIFICULTAD EXTRA (opcional) /////////////////////////////////////
56+
57+
58+ agenda = [] # Lista para guardar los contactos.
59+ exit = True # Variable para mantener o terminar el bucle While.
60+
61+ # Funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
62+
63+ def agregar ():
64+
65+ nombre = input ("Introduce el nombre del contacto: " )
66+ numero = input ("Introduce el número del contacto: " )
67+
68+ try :
69+ # Comprueba si es un número y si tiene menos de 11 dígitos.
70+ if isinstance (int (numero ), int ) and len (numero ) <= 11 :
71+
72+ return agenda .append ({'nombre' : nombre , 'numero' : numero })
73+
74+ except :
75+
76+ print ("El número no debe tener letras y no debe tener más de 11 dígitos." )
77+ agregar ()
78+
79+ def actualizar ():
80+
81+ opcion = input ("Deseas actualizar el 'nombre' o 'número': " )
82+
83+ if opcion == 'nombre' :
84+
85+ nombre_actual = input ("Indica el nombre actual del contacto: " )
86+ cambio_nombre = input ("Indica el nombre al que deseas cambiarlo: " )
87+
88+ for contacto in agenda :
89+
90+ if contacto ['nombre' ] == nombre_actual :
91+ contacto ['nombre' ] = cambio_nombre
92+ return contacto
93+
94+ elif opcion == 'número' :
95+
96+ numero_actual = input ("Indica el número actual del contacto: " )
97+ cambio_numero = input ("Indica el número al que deseas cambiarlo: " )
98+
99+ try :
100+
101+ if isinstance (int (cambio_numero ), int ) and len (cambio_numero ) <= 11 :
102+
103+ for contacto in agenda :
104+
105+ if contacto ['numero' ] == numero_actual :
106+ contacto ['numero' ] = cambio_numero
107+ return contacto
108+
109+ except :
110+
111+ print ("El número no debe tener letras y no debe tener más de 11 dígitos." )
112+ actualizar ()
113+
114+ else :
115+ print ("Escoger entre 'nombre' o 'número'." )
116+
117+ return 'El contacto no ha sido creado.'
118+
119+ def eliminar ():
120+
121+ posicion = 0
122+ contacto_eliminar = input ("Nombre del contacto que se va a eliminar: " )
123+
124+ for contacto in agenda :
125+
126+ if contacto ['nombre' ] == contacto_eliminar :
127+
128+ break
129+
130+ posicion += 1
131+
132+ agenda .pop (posicion )
133+
134+ return agenda
135+
136+ def buscar ():
137+
138+ nombre = input ("Introduce el nombre del contacto que deseas buscar: " )
139+
140+ for contacto in agenda :
141+
142+ if contacto ['nombre' ] == nombre :
143+ return contacto
144+
145+
146+ # Menú de la agenda y parte principal.
147+
148+ while exit :
149+
150+ menu = input ("¿Qué desea hacer? 'agregar', 'buscar', 'actualizar', 'eliminar', 'mostrar' un contacto o 'salir': " )
151+
152+ if menu == 'agregar' :
153+
154+ agregar ()
155+
156+ elif menu == 'actualizar' :
157+
158+ print (actualizar ())
159+
160+
161+ elif menu == 'eliminar' :
162+
163+ print (eliminar ())
164+
165+ elif menu == 'buscar' :
166+
167+ print (buscar ())
168+
169+ elif menu == 'mostrar' :
170+
171+ print (agenda )
172+
173+ elif menu == 'salir' :
174+
175+ exit = False
176+
177+ else :
178+ print ("Debes escoger entre las opciones indicadas: 'añadir', 'buscar'..." )
0 commit comments