Skip to content

Commit a645b6e

Browse files
authored
Merge pull request mouredev#6120 from pwrxman/main
#3 - Python
2 parents ff563dc + f9a8f3f commit a645b6e

File tree

1 file changed

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

1 file changed

+221
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
"""
2+
* EJERCICIO:
3+
* - Muestra ejemplos de creación de todas las estructuras soportadas por defecto
4+
* en tu lenguaje.
5+
* - Utiliza operaciones de inserción, borrado, actualización y ordenación.
6+
"""
7+
# Creando LISTA Usando Brackets
8+
my_list: list = ["Brais", "Black", 4 , True, 3.1416, ["a", "b", "c", "d"]]
9+
10+
# Creando LISTA Using the list() constructor to make a List:
11+
thislist = list(("xerox", "tomas", "apple", "banana", "cherry")) # note the double round-brackets
12+
print(thislist)
13+
print(my_list)
14+
15+
empty_list = list() # this is an empty list, no item in the list
16+
17+
my_list.append("Castor") # Inserción
18+
print(my_list)
19+
my_list.remove("Brais") # Eliminación
20+
print(my_list)
21+
print(my_list[1]) # Acceso al segundo elemento, recuerda que empieza en cero
22+
my_list[1] = "Cuervillo" # Actualización
23+
print(my_list)
24+
25+
thislist.sort()
26+
print(thislist)
27+
28+
lst = ['item1','item2','item3', 'item4', 'item5']
29+
f_item, s_item, t_item, *rest = lst # Hace un emparejamiento de cada nombre de estos con el correspondiente elemento de la lista
30+
# El *rest crea una lista con los elementos restantes
31+
print(f_item) # item1
32+
print(t_item) # item2
33+
print(s_item) # item3
34+
print(rest) # ['item4', 'item5']
35+
print(type(my_list))
36+
37+
38+
# Creando TUPLE con parentesis
39+
my_tuple: tuple = ("Andrei", "Med", "@amed", "66")
40+
print(my_tuple)
41+
42+
# Creando TUPLE usando el constructor
43+
thistuple = tuple(("apple", "banana", "cherry")) # note the double round-brackets
44+
print(thistuple)
45+
46+
print(my_tuple[1]) # Acceso
47+
print(my_tuple[3])
48+
my_tuple = tuple(sorted(my_tuple)) # Ordenación
49+
print(my_tuple)
50+
print(type(my_tuple))
51+
52+
53+
# Creando un SET usando llaves {}
54+
my_set: set = {"Brais", "Moure", "@mouredev", "36"}
55+
print(my_set)
56+
57+
# Creando un SET usando e constructor
58+
thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
59+
print(thisset)
60+
61+
62+
my_set.add("[email protected]") # Inserción
63+
print(my_set)
64+
my_set.remove("Moure") # Eliminación
65+
print(my_set)
66+
my_set = set(sorted(my_set)) # No se puede ordenar
67+
print(my_set)
68+
print(type(my_set))
69+
70+
# Creando un Diccionario usando {}
71+
my_dict: dict = {
72+
"name": "Brais",
73+
"surname": "Moure",
74+
"alias": "@mouredev",
75+
"age": "36"
76+
}
77+
print(my_dict)
78+
79+
# Creating a Dictionary Using the dict() method to make a dictionary:
80+
thisdict = dict(name = "John", age = 36, country = "Norway")
81+
print(thisdict)
82+
83+
84+
my_dict["email"] = "[email protected]" # Inserción
85+
print(my_dict)
86+
del my_dict["surname"] # Eliminación
87+
print(my_dict)
88+
print(my_dict["name"]) # Acceso
89+
my_dict["age"] = "37" # Actualización
90+
print(my_dict)
91+
my_dict = dict(sorted(my_dict.items())) # Ordenación
92+
print(my_dict)
93+
print(type(my_dict))
94+
95+
96+
# Diccionario anidado
97+
child1 = {
98+
"name" : "Emil",
99+
"year" : 2004
100+
}
101+
child2 = {
102+
"name" : "Tobias",
103+
"year" : 2007
104+
}
105+
child3 = {
106+
"name" : "Linus",
107+
"year" : 2011
108+
}
109+
110+
myfamily = {
111+
"child1" : child1,
112+
"child2" : child2,
113+
"child3" : child3
114+
}
115+
116+
print(child1)
117+
print(child2)
118+
print(child3)
119+
print(myfamily)
120+
121+
122+
"""
123+
* DIFICULTAD EXTRA (opcional):
124+
* Crea una agenda de contactos por terminal.
125+
* - Debes implementar funcionalidades de búsqueda, inserción, actualización
126+
* y eliminación de contactos.
127+
* - Cada contacto debe tener un nombre y un número de teléfono.
128+
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar,
129+
* y a continuación los datos necesarios para llevarla a cabo.
130+
* - El programa no puede dejar introducir números de teléfono no númericos y con más
131+
* de 11 dígitos (o el número de dígitos que quieras).
132+
* - También se debe proponer una operación de finalización del programa.
133+
"""
134+
135+
agenda = {}
136+
137+
def searching():
138+
print("\nBuscando contactoF")
139+
nombre = input("Dime el nombre a Buscar: ")
140+
if nombre in agenda.keys():
141+
print(f"Encontre el nombre {nombre} solicitado y su teléfono es {agenda[nombre]}\n")
142+
143+
else:
144+
print(f"No existe el contacto {nombre}\n")
145+
146+
147+
def adding():
148+
print("\nAñadiendo contactoF")
149+
nombre = input("Dime el nombre del nuevo contacto: ")
150+
if nombre in agenda.keys():
151+
print(f"Ya existe un contacto con el nombre -> {nombre} y telefono {agenda[nombre]}\n\n")
152+
153+
else:
154+
# print(f"Nombre no Duplicado ============> nombre = {nombre}")
155+
tel = input("Introduce el número telefónico del contacto: ")
156+
if tel.isdigit() and len(tel) > 0 and len(tel) <= 11:
157+
agenda[nombre] = tel
158+
print(f"Se añadió nuevo contacto nombre: {nombre} y telefono {agenda[nombre]}\n\n")
159+
160+
else:
161+
print("Debes introducir un teléfono solo con números y un máximo de 11 dígitos.\n\n")
162+
163+
def updating():
164+
print("Modificar contactoF")
165+
nombre = input("Dime el nombre del contacto que deseas actualizar: ")
166+
if nombre in agenda.keys():
167+
tel = input("Dime el nuevo telefono para este contacto: ")
168+
agenda[nombre] = tel
169+
print(f"Se actualizó el contacto {nombre} con el telefono {agenda[nombre]}\n\n")
170+
else:
171+
print(f"No existe el contacto {nombre}\n")
172+
173+
def deleting():
174+
print("Eliminando contactoF")
175+
nombre = input("Dime el nombre del contacto que deseas eliminar: ")
176+
if nombre in agenda.keys():
177+
agenda.pop(nombre)
178+
print(f"Se eliminó el contacto {nombre}")
179+
else:
180+
print(f"No existe el contacto {nombre}\n")
181+
182+
def my_agenda():
183+
184+
operacion = "0"
185+
186+
while operacion != "5":
187+
print("1. Buscar Contacto")
188+
print("2. Añadir Nuevo Contacto")
189+
print("3. Modificar Contacto")
190+
print("4. Eliminar Contacto")
191+
print("p. Genrra Lista de Contactos")
192+
print("5. Terminar")
193+
194+
operacion = input("Seleccione la operación deseada: ")
195+
196+
match operacion:
197+
case "1":
198+
searching()
199+
200+
case "2":
201+
adding()
202+
203+
case "3":
204+
updating()
205+
206+
case "4":
207+
deleting()
208+
209+
case "p":
210+
for x, y in agenda.items():
211+
print(x, y)
212+
213+
case "5":
214+
print("Terminar")
215+
break
216+
217+
case _:
218+
print("Opcion seleccionada NO válida.")
219+
220+
my_agenda()
221+

0 commit comments

Comments
 (0)