Skip to content

Commit 72fc80f

Browse files
committed
#3 - Python
1 parent d11000d commit 72fc80f

File tree

1 file changed

+178
-0
lines changed
  • Roadmap/03 - ESTRUCTURAS DE DATOS/python

1 file changed

+178
-0
lines changed
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
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

Comments
 (0)