Skip to content

Commit 1f3b781

Browse files
authored
Merge pull request mouredev#7756 from idiegorojas/main
#3 - Python
2 parents a6c95a4 + ce4b79f commit 1f3b781

File tree

2 files changed

+320
-0
lines changed

2 files changed

+320
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
"""
2+
Listas
3+
Son colecciones ordenadas y mutables de elementos
4+
"""
5+
6+
# Creacion de listas
7+
mi_lista = [1,2,3,4,5]
8+
9+
# Inserccion
10+
mi_lista.append(5) # Inserta el numero 5 al final de la lista
11+
mi_lista.insert(2, 2.5) # Inserta el numero 2.5 en la posicion 2
12+
13+
# Borrado
14+
mi_lista.remove(2.5) # Elimina el primer elemento con valor 2.5
15+
del mi_lista[0] # Elimina el elemento en la posicion numero 0
16+
17+
# Actualizacion
18+
mi_lista[1] = 10 # Actualiza el elemento en la posicion 1 a 10
19+
20+
# Ordenacion
21+
mi_lista.sort() # Ordena la lista de forma ascendente
22+
mi_lista.sort(reverse=True) # Ordena la lista de forma descendente
23+
24+
print(mi_lista)
25+
26+
27+
"""
28+
Tuplas
29+
Son colecciones ordenadas e inmutables de elementos
30+
Para modificar una tupla, se debe crear una nueva
31+
"""
32+
33+
# Creacion
34+
mi_tupla = (1,2,3,4,5)
35+
36+
# Ordenacion
37+
lista_ordenada = sorted(mi_tupla)
38+
mi_tupla_ordenada = tuple(lista_ordenada)
39+
print(mi_tupla_ordenada)
40+
41+
42+
"""
43+
Conjuntos
44+
Son colecciones no ordenadas y mutables de elementos unicos
45+
"""
46+
47+
# Creacion
48+
mi_conjunto = {1,2,3,4,5}
49+
50+
# Inserccion
51+
mi_conjunto.add(6) # Añade un elemento al conjunto
52+
53+
# Borrado
54+
mi_conjunto.remove(2) # Elimina el elemento 2 del conjunto
55+
mi_conjunto.discard(3) # Elimina el elemnto 3 si esta presente
56+
57+
# Actualizacion
58+
# Los conjuntos no poseen index por lo cual para actualizar un elemento, primero se debe eliminar y luego añadir el nuvo elemento
59+
60+
# Ordenacion
61+
lista_ordenada = sorted(mi_conjunto) # Ordena el conjunto y devuelve una lista
62+
print(mi_conjunto)
63+
64+
65+
"""
66+
Diccionarios
67+
Son colecciones no ordenadas de pares clave - valor
68+
"""
69+
70+
# Creacion
71+
mi_diccionario = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
72+
73+
# Inserccion
74+
mi_diccionario['f'] = 6 # Añade un nuevo par clave -valor
75+
76+
# Borrado
77+
del mi_diccionario['b'] # Elimina el par con la clave 'b'
78+
mi_diccionario.pop('a') # Elimina y devuelve el valor asociado con la clave 'a'
79+
80+
# Actualizacion
81+
mi_diccionario['c'] = 30 # Actualiza el valor asociado a la clave 'c' por 30
82+
83+
# Ordenacion
84+
# Los diccionarios no tienen un orden, pero se puede ordenar por clave o valor
85+
dict_ordenado_por_clave = dict(sorted(mi_diccionario.items()))
86+
dict_ordenado_por_valor = dict(sorted(mi_diccionario.items(), key=lambda item: item[1]))
87+
88+
print(dict_ordenado_por_clave)
89+
print(dict_ordenado_por_valor)
90+
91+
92+
"""
93+
Extra
94+
"""
95+
96+
def agenda_contactos():
97+
98+
agenda = {}
99+
100+
def insertar():
101+
nombre = input('Por favor ingrese el nombre del contacto: ')
102+
while True:
103+
numero = input('Por favor ingresa el numero del contacto:')
104+
if numero.isdigit() and 5 <= len(numero) <= 11:
105+
agenda[nombre] = numero
106+
print(f'Contacto {nombre} agregado correctamente.')
107+
break
108+
else:
109+
print('Numero de contacto invalido. Debe tener entre 5 a 11 Digitos.')
110+
111+
def eliminar():
112+
nombre = input('Por favor ingrese el nombre del contacto que desea eliminar: ')
113+
if nombre in agenda:
114+
del agenda[nombre]
115+
print(f'Contacto {nombre} eliminado correctamente.')
116+
else:
117+
print(f'Contacto {nombre} no encontrado.')
118+
119+
def actualizar():
120+
nombre = input('Por favor ingresa el nombre del contacto que deseas actualizar: ')
121+
if nombre in agenda:
122+
print(f"""Seleccione una de las siguientes opciones:
123+
a. Actualizar nombre de contacto
124+
b. Actualizar numero de contacto""")
125+
actualizacion = input('Inserte la opcion a elegir: ')
126+
if actualizacion == 'a':
127+
nuevo_nombre = input('Por favor ingrese el nuevo nombre de contacto: ')
128+
agenda[nuevo_nombre] = agenda.pop(nombre)
129+
elif actualizacion == 'b':
130+
nuevo_numero = input('Por favor ingrese el nuevo numero de contacto: ')
131+
agenda[nombre] = nuevo_numero
132+
else:
133+
print(f'Contacto {nombre} no encontrado.')
134+
135+
def buscar():
136+
nombre = input('Por favor ingrese el nombre del contacto que desea buscar: ')
137+
if nombre in agenda:
138+
print(f'El numero de {nombre} es {agenda[nombre]}.')
139+
else:
140+
print(f'El contacto {nombre} no encontrado.')
141+
142+
while True:
143+
print('Bienvenido a tu agenda')
144+
print(f"""Que operacion deseas realizar:
145+
a. Inserta contacto
146+
b. Eliminar contacto
147+
c. Actualizar contacto
148+
d. Buscar contacto
149+
e. Salir
150+
""")
151+
152+
opcion_usuario = input('Por favor ingresa la opcion a seleccionar: ')
153+
154+
if opcion_usuario == 'a':
155+
insertar()
156+
elif opcion_usuario == 'b':
157+
eliminar()
158+
elif opcion_usuario == 'c':
159+
actualizar()
160+
elif opcion_usuario == 'd':
161+
buscar()
162+
elif opcion_usuario == 'e':
163+
print('Saliendo de la agenda...')
164+
break
165+
else:
166+
print('Opcion no valida, por favor intenta de nuevo.')
167+
168+
agenda_contactos()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
# Cadenas de Caracteres
2+
3+
# Concatenacion
4+
# Unir dos o mas cadenas
5+
cadena_1 = 'Hola'
6+
cadena_2 = 'Mundo'
7+
resultado = cadena_1 + ' ' + cadena_2
8+
print(resultado)
9+
10+
# Repeticion
11+
# Repetir una cadena varias veces
12+
cadena = 'Python'
13+
resultado = cadena * 3
14+
print(resultado)
15+
16+
# Acceso a caracteres
17+
# Acceder a un caracter de la cadena mediante su indice
18+
cadena = 'Python'
19+
print(cadena[0])
20+
print(cadena[-1])
21+
22+
# Subcadenas (slicing)
23+
cadena = 'Python'
24+
resultado = cadena[1:4]
25+
print(resultado)
26+
27+
# Longitud
28+
cadena = 'Python'
29+
longitud = len(cadena)
30+
print(longitud)
31+
32+
# Busqueda se subcadenas
33+
cadena = 'Python es genial.'
34+
posicion = cadena.find('es')
35+
print(posicion)
36+
37+
# Reemplazar
38+
cadena = 'Python es genial.'
39+
nueva_Cadena = cadena.replace('genial', 'increible')
40+
print(nueva_Cadena)
41+
42+
# Division
43+
cadena = 'Python es genial.'
44+
lista = cadena.split(" ")
45+
print(lista)
46+
47+
# Union
48+
lista = ['Python', 'es', 'genial.']
49+
union = " ".join(lista)
50+
print(union)
51+
52+
# Mayusculas y minusculas
53+
cadena = 'Python'
54+
mayuscula = cadena.upper()
55+
minuscula = cadena.lower()
56+
print(mayuscula)
57+
print(minuscula)
58+
59+
# Eliminacion de espacios
60+
# Elimina espacios en blanco al inicio y al final de una cadena
61+
cadena = ' Python '
62+
limpia = cadena.strip()
63+
print(limpia)
64+
65+
# Formateo de cadenas
66+
nombre = 'Python'
67+
version = 3.12
68+
mensaje = f'{nombre} version {version}'
69+
print(mensaje)
70+
71+
mensaje = '{} version {}'.format(nombre, version)
72+
print(mensaje)
73+
74+
# comprobacion de prefijos y sufijos.
75+
cadena = 'Python es genial.'
76+
print(cadena.startswith('Python'))
77+
print(cadena.endswith('genial.'))
78+
79+
# Conversion a lista de caracteres
80+
cadena = 'Python'
81+
lista = list(cadena)
82+
print(lista)
83+
84+
# Inversion de una cadena
85+
cadena = 'Python'
86+
invertida = cadena[::-1]
87+
print(invertida)
88+
89+
# Comprobar contenido
90+
cadena = 'Python 3.12'
91+
print(cadena.isalpha()) # False por que contiene numeros
92+
print(cadena.isdigit()) # False por que contiene letras
93+
print(cadena.isalnum()) # True por que contiene letras y numeros
94+
95+
# Capitalizacion
96+
cadena = 'python es genial.'
97+
capitalizar = cadena.capitalize()
98+
print(capitalizar)
99+
100+
# Conteo de subcadenas
101+
cadena = 'Python es genial, Python esta en la version 3.12'
102+
conteo = cadena.count('Python')
103+
print(conteo)
104+
105+
# Verificacion de espacios
106+
cadena = " "
107+
print(cadena.isspace())
108+
109+
# Interpolacion de cadenas
110+
nombre = 'Python'
111+
version = 3.12
112+
mensaje = 'Lenguaje: %s, Version: %.1f'%(nombre, version)
113+
print(mensaje)
114+
115+
116+
# Extra
117+
def programa_palabras():
118+
119+
palabra_1 = input('Por favor ingrese la primera palabra: ')
120+
palabra_2 = input('Por favor ingrese la segunda palabra: ')
121+
122+
def limpiar_palabra(palabra):
123+
return palabra.replace(" ", "").lower()
124+
125+
palabra_1_limpia = limpiar_palabra(palabra_1)
126+
palabra_2_limpia = limpiar_palabra(palabra_2)
127+
128+
def palindromo():
129+
return palabra_1_limpia == palabra_2_limpia[::-1]
130+
131+
def anagrama():
132+
return sorted(palabra_1_limpia) == sorted(palabra_2_limpia)
133+
134+
def isograma(palabra):
135+
return len(palabra) == len(set(palabra))
136+
137+
if palindromo():
138+
print(f'Las palabras "{palabra_1}" y "{palabra_2}" son palíndromos.')
139+
else:
140+
print(f'Las palabras "{palabra_1}" y "{palabra_2}" no son palíndromos.')
141+
142+
if anagrama():
143+
print(f'Las palabras "{palabra_1}" y "{palabra_2}" son anagramas.')
144+
else:
145+
print(f'Las palabras "{palabra_1}" y "{palabra_2}" no son anagramas.')
146+
147+
if isograma(palabra_1_limpia) and isograma(palabra_2_limpia):
148+
print(f'Las palabras "{palabra_1}" y "{palabra_2}" son isogramas.')
149+
else:
150+
print(f'Las palabras "{palabra_1}" y "{palabra_2}" no son isogramas.')
151+
152+
programa_palabras()

0 commit comments

Comments
 (0)