ADD dia 03

This commit is contained in:
Manuel Vergara 2023-04-12 21:53:51 +02:00
parent 7cced611b9
commit 8298e6bf22
11 changed files with 426 additions and 0 deletions

24
dia_03/01_index.py Normal file
View File

@ -0,0 +1,24 @@
print("# BUSCAR LA POSICIÓN DE UN CARACTER")
# CON index() PODEMOS ENCONTRAR LA POSICIÓN DE UN CARACTER EN UN STRING
mi_texto = "hola mundo"
posicion = mi_texto.index("o",0,11)
print(f"EJEMPLO: La posición del caracter \"o\" es {posicion}")
# PREGUNTAR LETRA Y DAR POSICIÓN EN FRASE
pregunta_carater = input("PREGUNTA: De qué carater quieres saber la posición: ")
print(f"El carater \"{pregunta_carater}\" está en la posición \"{mi_texto.index(pregunta_carater)}\"")
print("\n# SE PUEDE BUSCAR CON rindex PARA BUSCAR DE DERECHA A IZQUIERDA")
posicion_r = mi_texto.rindex("o")
print(f"EJEMPLO: La posición en búsqueda reversa del caracter \"o\" es {posicion_r}")
print("\n# BUSCAR EL CARACTER DE UNA POSICIÓN")
# SABER LA LETRA DE UNA POSICIÓN
que_carater = mi_texto[3]
print(f"EJEMPLO: El carater en la posición \"3\" del string es la \"{que_carater}\"")
# PREGUNTAR POSICIÓN Y DAR RESULTADO EN FRASE
pregunta_posicion = int(input("PREGUNTA: De que posición quieres saber el caracter: "))
resultado_posicion = mi_texto[pregunta_posicion]
print(f"En la posición \"{pregunta_posicion}\" está el caracter \"{resultado_posicion}\"")

32
dia_03/02_sub_strings.py Normal file
View File

@ -0,0 +1,32 @@
# DISTINTAS POSIBILIDADES CON Sub-strings. slicing (rebanar)
# Limitando la rebanada
print("# Limitando la rebanada")
texto = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
fragmento01 = texto[2:15]
print(fragmento01)
# Hasta el final
print("# Hasta el final")
fragmento02 = texto[2:]
print(fragmento02)
# Desde el inicio
print("# Desde el inicio")
fragmento03 = texto[:10]
print(fragmento03)
# Con saltos de dos
print("# Con saltos de dos")
fragmento04 = texto[2:15:2]
print(fragmento04)
# Con saltos de tres de prinicipio a fin
print("# Con saltos de tres de prinicipio a fin")
fragmento05 = texto[::3]
print(fragmento05)
# Con saltos de dos desde el final
print("# Con saltos de dos desde el final")
fragmento06 = texto[::-2]
print(fragmento06)

53
dia_03/03_metodos.py Normal file
View File

@ -0,0 +1,53 @@
""" Métodos en strings """
texto = "Este es el texto de Federico"
# Mayúsculas
resultado01 = texto.upper()
print(resultado01)
# Mayúsculas (Podemos determinar un índice)
resultado02 = texto[20].upper()
print(resultado02)
# Mayúsculas
resultado03 = texto.upper()
print(resultado03)
# Split (Separar dentro de una lista)
resultado04 = texto.split()
print(resultado04)
# Split (Separar dentro de una lista) Se puede seleccionar el elemento separador
resultado05 = texto.split(" ")
print(resultado05)
# Join
a = "Aprender"
b = "Python"
c = "es"
d = "genial"
unir = "-".join([a,b,c,d])
print(unir)
# Find
resultado06 = texto.find("F")
print(resultado06)
## La diferencia de find con index es que
## si buscas un carácter que no existe no da error
## arroja el valor -1
resultado07 = texto.find("g")
print(resultado07)
# Reemplazar
resultado08 = texto.replace("Federico", "Manuel")
print(resultado08)
frase = "Si la implementación es difícil de explicar, puede que sea una mala idea."
resultado001 = frase.replace("difícil","fácil")
resultado002 = resultado001.replace("mala","buena")
print(resultado002)

55
dia_03/04_string.py Normal file
View File

@ -0,0 +1,55 @@
# Métodos de strings
## Métodos de análisis
print("Hola mundo".count("Hola"))
print("Hola mundo".find("world"))
print("C:/python36/python.exe".rfind("/"))
print("Hola mundo".startswith("Hola"))
print("abc123".isdigit())
print("1234".isnumeric())
print("1234".isdecimal())
print("abc123".isalnum())
print("abc123".isalpha())
print("abcdef".islower())
print("ABCDEF".isupper())
print("Hola mundo".isspace())
print("hola mundo".capitalize())
print("Hola mundo".encode("utf-8"))
print("Hola mundo".replace("mundo", "world"))
print("Hola Mundo!".lower())
print("Hola Mundo!".upper())
print("Hola Mundo!".swapcase())
print(" Hola mundo! ".strip())
print("Hola".center(10, "*"))
print("Hola mundo!\nHello world!".split())
print("Hola mundo!\nHello world!".splitlines())
print("Hola mundo. Hello world!".partition(" "))
print("Hola mundo. Hello world!".rpartition(" "))
print(", ".join(["C", "C++", "Python", "Java"]))

37
dia_03/05_propiedades.py Normal file
View File

@ -0,0 +1,37 @@
#INMUTABLE
# Este código intenta cambiar un caracter del string,
# con lo que no permitirá, dará error
# nombre = "Carina"
# nombre[0] = "K"
# print(nombre)
#CONCATENAR
n1 = "Kari"
n2 = "na"
print(n1 + n2)
# MULTIPLICAR
print(n1 * 5)
# MULTILINEA
# Perfecto para poemas
poema = """ Mil pequeños peces blancos
como si hirviera
el color del agua."""
print(poema)
# VERIFICAR contenido. booleano
print("agua" in poema)
# También se puede verificar si NO está
print("escorbuto" not in poema)
# LONGITUD DE STRING
print(len(poema))
print(len("Otro ejemplo"))
print(len("Anticonstitucionalidades"))
print(len("electroencefalografistas"))
print(len("Esternocleidomastoideo"))

36
dia_03/06_listas.py Normal file
View File

@ -0,0 +1,36 @@
# LAS LISTAS
lista_1 = ["C", "C++", "Python", "Java"]
lista_2 = ["PHP", "SQL", "Visual Basic"]
lista_3 = ["d", "a", "c", "b", "e"]
lista_4 = [5, 4, 7, 1, 9]
# Ver tipo de dato de las listas
print(type(lista_1))
# Concatenar listas
lista_1_2 = lista_1 + lista_2
print(lista_1_2)
# EN LAS LISTAS SE PUEDEN MODIFICAR LOS ELEMENTOS
# Agregar un elemento a la lista
lista_1.append("R")
print(lista_1)
# Eliminar un elemento de la lista con el índice (Devuelve el valor eliminado)
print(lista_1.pop(4))
guardar_elemento = lista_1_2.pop(2)
print(guardar_elemento)
# Ordenar los elementos de la lista
lista_3.sort()
print(lista_3)
# Cuidado que no devuelve nada, modifica la variable
guardar_sort = lista_3.sort()
print(guardar_sort)
# Es de tipo None, un objecto sin valor, que no es lo mismo que 0
print(type(guardar_sort))
# Invierte el orden de los elementos (No es lo opuesto a sort)
lista_4.reverse()
print(lista_4)

56
dia_03/07_diccionarios.py Normal file
View File

@ -0,0 +1,56 @@
# DICCIONARIOS (No se puede repetir el valor)
mi_diccionario = {"c1":"valor1","c2":"valor2"}
print(type(mi_diccionario))
print(mi_diccionario)
# Guardando un valor
resultado = mi_diccionario['c1']
print(resultado)
# Ejemplo 1
cliente = {
'nombre':'Juan',
'apellido':'Fuentes',
'peso':'88',
'talla':'1760'
}
consulta = (cliente['talla'])
print(consulta)
# Ejemplo 2
paciente ={
"nombre":"Eusebio",
"apellido":"García",
"peso":82.6,
"altura":"172"
}
print(f"El paciente se llama {paciente['nombre']} {paciente['apellido']} pesa {paciente['peso']} kg y mide {paciente['altura']} cm.")
# Diccionarios anidados y listas anidadas
dic = {'c1':55,'c2':[10,20,30],'c3':{'s1':100,'s2':200}}
print(dic['c2'])
print(dic['c2'][1])
print(dic['c3'])
print(dic['c3']['s2'])
# Ejercicio sacar la letra e en mayúscula
diccio = {'c1':['a','b','c'],'c2':['d','e','f']}
print(diccio['c2'][1].upper())
# Cambios en un diccionario
dic2 = {1:'a',2:'b'}
print(dic2)
dic2[3] = 'c'
print(dic2)
dic2[2] = 'B'
print(dic2)
print(dic2.keys())
print(dic2.values())
print(dic2.items())
mi_dic = {"nombre":"Karen", "apellido":"Jurgens", "edad":35, "ocupacion":"Periodista"}
mi_dic['edad'] = 36
mi_dic['ocupacion'] = 'Editora'
mi_dic['pais'] = 'Colombia'
print(mi_dic)

33
dia_03/08_tuplas.py Normal file
View File

@ -0,0 +1,33 @@
mi_tuple = (1,2,3,4)
mi_tuple2 = 1,2,(10,20),4
print(type(mi_tuple))
print(mi_tuple2)
print(mi_tuple[2])
print(mi_tuple[-2])
print(mi_tuple2[2][0])
# El tuple se puede convertir en una lista
mi_tuple =list(mi_tuple)
print(type(mi_tuple))
# También al revés, se puede convertir una lista en un tuple
mi_tuple =tuple(mi_tuple)
print(type(mi_tuple))
# Se puede dar cada uno de los valores a una variable distinta
# pero tienen que coincidir la cantidad de valores con las variables
t = 1,2,1
x,y,z = t
print(x, y, z)
# Se puede pedir el número de elementos
print(len(t))
# Se puede contar la cantidad de apareciones de un valor
print(t.count(1))
# También se puede consultar el indice de un valor
print(t.index(2))

46
dia_03/09_set.py Normal file
View File

@ -0,0 +1,46 @@
""" Sets """
mi_set = set([1, 2, 3, 4, 5])
print(type(mi_set))
print(mi_set)
# No acepta repeticiones
# No acepta listas
# pero sí tuples porque son inmutables
otro_set = set([1, 2, 3, 4, 5, (1,2,3), 1, 1, 1])
print(otro_set)
print(len(mi_set))
print(2 in mi_set)
# MÉTODOS
# Union
s1 = {1,2,3}
s2 = {3,4,5}
s3 = s1.union(s2)
print(s3)
# Agregar
s1.add(4)
print(s1)
# Eliminar. Si no encuentra el elemento
# da error
s1.remove(3)
print(s1)
# Descartar. Funciona como remove
# pero no da error si no encuentra el elemento
s1.discard(3)
print(s1)
# Elimina un elemento aleatorio
sorteo = s1.pop()
print(sorteo)
print(s1)
# Vaciar el set
s1.clear()
print(s1)

23
dia_03/10_booleanos.py Normal file
View File

@ -0,0 +1,23 @@
"""
booleano
"""
# Creación directa del booleano
var1 = True
var2 = False
print(type(var1))
print(var1)
# Creación indirecta del booleano
numero = 5 > 2+3
print(type(numero))
print(numero)
# Creación explícita
compara = bool(5 != 5+1)
print(compara)
lista = (1, 2, 3, 4)
control = 5 not in lista
print(type(control))
print(control)

31
dia_03/11_programa03.py Normal file
View File

@ -0,0 +1,31 @@
"""
Programa día 3 - Analizador de text
"""
txt = input("""
Ingresa un texto para analizar
""")
print("\nIngresa tres letras por favor")
l1 = input("\tIngresa la primera letra: ")
l2 = input("\tIngresa la segunda letra: ")
l3 = input("\tIngresa la tercera letra: ")
letras = [l1, l2, l3]
print("\nPRIMERO. Vamos a ver las veces que aparecen las letras en el texto:")
print(f"\t- La letra {l1} se encuentra {txt.lower().count(letras[0].lower())} veces en el texto.")
print(f"\t- La letra {l2} se encuentra {txt.lower().count(letras[1].lower())} veces en el texto.")
print(f"\t- La letra {l3} se encuentra {txt.lower().count(letras[2].lower())} veces en el texto.")
print(f"\nSEGUNDO. El texto tiene {len(txt.split())} palabras.")
pos_pri = txt[0]
pos_fin = txt[-1]
print(f"\nTERCERO. La primera letra del texto es \"{pos_pri}\" y la última es \"{pos_fin}\"")
print(f"\nCUARTO. Cuidao, el texto al revés es así:\n{' '.join(txt[::-1])}")
ser_o_no_ser = ("python" in txt)
dic_si_o_no = {True:"",False:"no"}
print(f"\nQUINTO. La palabra python {dic_si_o_no[ser_o_no_ser]} se encuentra en el texto")