Skip to content

Commit 64c6539

Browse files
authored
Merge pull request mouredev#1104 from Jesusway69/main
#3 - Python
2 parents 208c752 + 101a30c commit 64c6539

File tree

1 file changed

+177
-0
lines changed

1 file changed

+177
-0
lines changed
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
import os
2+
os.system ('cls')
3+
4+
"""
5+
* EJERCICIO:
6+
* - Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje.
7+
* - Utiliza operaciones de inserción, borrado, actualización y ordenación.
8+
*
9+
"""
10+
#LISTA , ESTRUCTURA DE ELEMENTOS MUTABLES QUE PUEDEN SER DE VARIOS TIPOS
11+
print ("LISTA" , "\n-----")
12+
lista = [1, 3.5, 7j, "Hola", "Python", True, None, [4, 5], (1, "hola", False)]
13+
print(type(lista))
14+
[print(i , end =' ') for i in lista]#Forma simplificada de bucle for con instrucción de impresión
15+
lista.append("Elemento al final") #Agrega elemento al final
16+
print(lista)
17+
lista.insert(2 ,"elemento agregado en la posición 2") # Inserta elemento en la posición determinada
18+
print(lista)
19+
lista.remove((1, "hola", False)) #Borra el elemento especificado
20+
print(lista)
21+
print("Veces que se repite el nº 1 y/o el booleano True: ",lista.count(1))
22+
# devuelve el nº de repeticiones de un elemento (devuelve 2 porque interpreta el True como otro 1)
23+
#el método .count también es válido pata tuplas
24+
lista.reverse()# El método .reverse invierte el orden de los elementos de la lista
25+
print(lista)
26+
27+
28+
#TUPLA , ESTRUCTURA DE ELEMENTOS INMUTABLES QUE PUEDEN SER DE VARIOS TIPOS
29+
print ("\nTUPLA" , "\n-----")
30+
tupla = 1, 2, 2, 3.5, 7j, "Hola", "Python", True, None, [4,5,6], [1,2,3] #Se puede declarar con o sin paréntesis
31+
print(type(tupla))
32+
[print(i, end =' ') for i in tupla] #Forma simplificada de bucle for con instrucción de impresión
33+
print('')
34+
tupla_vacia =() #Declaración de una tupla vacía
35+
print (len(tupla_vacia)) #de longitud 0
36+
tupla_un_elemento = "elemento único", #Declaración de una tupla con un solo elemento
37+
print(len(tupla_un_elemento))#de longitud 1
38+
print(tupla_un_elemento)
39+
print (tupla.index("Python")) #Devuelve la posición del elemento especificado
40+
print (tupla)
41+
42+
43+
#SET , ESTRUCTURA MUTABLE DE ELEMENTOS ÚNICOS
44+
print ("\nSET" , "\n---")
45+
set1 = {7, 9, 2, 8, 4, 5, 6, 1, 8, 3, 0, 14, 8, 1, 10, 4, 3, 3}
46+
set2 = {15, 28, 31, 4, 28, 2, 50, 1, 8, 20, 10, 7, 14, 3, 12, 19}
47+
print(type(set1))
48+
[print(i, end = ' ') for i in set1]#Forma simplificada de bucle for con instrucción de impresión
49+
print("\n")
50+
for i in set2: #Forma tradicional de bucle for
51+
print(i, end=' ')#con instrucción de impresión
52+
print('\n')
53+
print (set1-set2)# muestra los elementos que solo existen en set1 y no están en set2
54+
#Equivalente a print(set1.difference(set2))
55+
print (set2-set1)# muestra los elementos que solo existen en set2 y no están en set1
56+
#Equivalente a print(set2.difference(set1))
57+
print (set1 & set2)# muestra únicamente los elementos que existen a la vez en ambos sets
58+
# Equivalente a print (set1.intersection(set2))
59+
print (set1 | set2)# muestra todos los elementos de ambos sets sin repeticiones
60+
# Equivalente a print(set1.union(set2))
61+
print (set1 ^ set2)# muestra los elementos de ambos sets que están en uno u otro set pero no en ambos
62+
# Equivalente a print(set1.symmetric_difference(set2))
63+
set1.discard(7) #El método .discart elimina un elemento definido del set
64+
#print (set1)
65+
66+
67+
#FROZENSET , ESTRUCTURA INMUTABLE DE ELEMENTOS ÚNICOS
68+
print ("\nFROZENSET" , "\n---------")
69+
frozen_set = frozenset([1, 0, 3, 5, 9, 6, 1, 3, 4, 8, 7, 2])
70+
print(type(frozen_set))
71+
[print(i , end = ' ') for i in frozen_set]
72+
print('\n')#Los métodos son los mismos que en set salvo los que modifiquen el contenido como .discart
73+
74+
#DICCIONARIO , ESTRUCTURA EN FORMATO CLAVE-VALOR INDEXADA POR LA CLAVE
75+
print ("\nDICCIONARIO" , "\n-----------")
76+
diccionario = {
77+
"Italia" : "Roma",
78+
"España" : "Madrid",
79+
"Francia" : "París",
80+
"Alemania" : "Berlín"
81+
}
82+
print(type(diccionario))
83+
[print(paises , end = ' ') for paises in diccionario] #Iteración sólo mostrando claves (capitales)
84+
[print("\n",paises, capitales , end = ' ') for paises, capitales in diccionario.items()] #Iteración mostrando claves y valores
85+
print ("\n",diccionario["España"])# Búsqueda de un valor por su clave
86+
87+
#Creación de diccionario con cálculo, se da un nº como clave y su valor será el resultado de la operación
88+
numeros_al_cubo = {n: n**3 for n in (2,4,6)}
89+
print (numeros_al_cubo)
90+
numeros_entre_dos = {n: n/2 for n in (2,4,6)}
91+
print (numeros_entre_dos)
92+
93+
"""
94+
* DIFICULTAD EXTRA (opcional):
95+
* Crea una agenda de contactos por terminal.
96+
* - Debes implementar funcionalidades de búsqueda, inserción, actualización
97+
* y eliminación de contactos.
98+
* - Cada contacto debe tener un nombre y un número de teléfono.
99+
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar,
100+
* y a continuación los datos necesarios para llevarla a cabo.
101+
* - El programa no puede dejar introducir números de teléfono no númericos y con más
102+
* de 11 dígitos (o el número de dígitos que quieras).
103+
* - También se debe proponer una operación de finalización del programa."""
104+
print ("\nEJERCICIO" , "\n---------")
105+
106+
agenda = {
107+
"Antonio":"123456789",
108+
"Luis" : "987654321",
109+
"Marta" : "321987654",
110+
"Carlos": "123789456",
111+
"Steven": "456789123",
112+
"Sandra" : "654987321",
113+
"Francois" : "321654987"
114+
}
115+
116+
117+
118+
119+
def buscar():
120+
121+
nombre = input("Introduzca nombre a buscar: ").capitalize()
122+
123+
if nombre in agenda:
124+
print("El usuario", nombre, "existe con nº de tlf:" , agenda[nombre])
125+
else :
126+
print("El usuario" , str(nombre) , "no existe")
127+
def añadir():
128+
129+
nombre = input("Introduzca el nombre del usuario a añadir:").capitalize()
130+
tlf = input("Introduzca el número de teléfono: ")
131+
if len(tlf) in range (9,12) and tlf.isdigit():
132+
agenda[nombre] = tlf
133+
print(f"El usuario {nombre} se ha añadido correctamente.")
134+
else:
135+
print("Sólo se admiten nº de teléfono con entre 9 y 11 dígitos numéricos")
136+
137+
def borrar():
138+
nombre = input("Introduzca el usuario a eliminar : ").capitalize()
139+
140+
if nombre in agenda:
141+
agenda.pop(nombre)
142+
print("El usuario", str(nombre), "se ha eliminado correctamente")
143+
144+
else : print("El usuario", nombre , "no existe")
145+
146+
147+
148+
149+
while True:
150+
print ("""\nSeleccione una opcion:
151+
1- Buscar contacto
152+
2- Añadir contacto
153+
3- Borrar contacto
154+
4- Mostrar agenda
155+
5- Salir""")
156+
opcion = input()
157+
158+
if opcion == "1":
159+
buscar()
160+
elif opcion == "2":
161+
añadir()
162+
elif opcion == "3":
163+
borrar()
164+
elif opcion == "4":
165+
print ("AGENDA",
166+
"\n------------------")
167+
[print("\n",k, v , end = ' ') for k, v in agenda.items()]
168+
print("\n------------------")
169+
print("\n")
170+
elif opcion == "5":
171+
print("Programa finalizado.")
172+
break
173+
else:
174+
print ("Sólo se pueden introducir opciones numéricas del 1 al 5")
175+
176+
177+

0 commit comments

Comments
 (0)