diff --git a/dia_08/01_pruebas_modulos/__pycache__/moduloOcupado.cpython-310.pyc b/dia_08/01_pruebas_modulos/__pycache__/moduloOcupado.cpython-310.pyc new file mode 100644 index 0000000..39c567d Binary files /dev/null and b/dia_08/01_pruebas_modulos/__pycache__/moduloOcupado.cpython-310.pyc differ diff --git a/dia_08/01_pruebas_modulos/moduloOcupado.py b/dia_08/01_pruebas_modulos/moduloOcupado.py new file mode 100644 index 0000000..9680a4b --- /dev/null +++ b/dia_08/01_pruebas_modulos/moduloOcupado.py @@ -0,0 +1,2 @@ +def saludar(): + print('Hola, estoy en el modulo ocupado') diff --git a/dia_08/01_pruebas_modulos/moduloVacio.py b/dia_08/01_pruebas_modulos/moduloVacio.py new file mode 100644 index 0000000..ccc8b3c --- /dev/null +++ b/dia_08/01_pruebas_modulos/moduloVacio.py @@ -0,0 +1,3 @@ +from moduloOcupado import saludar + +saludar() diff --git a/dia_08/02_pruebas_paquete/ejercicio.py b/dia_08/02_pruebas_paquete/ejercicio.py new file mode 100644 index 0000000..d6fd9d6 --- /dev/null +++ b/dia_08/02_pruebas_paquete/ejercicio.py @@ -0,0 +1,10 @@ +from paquete_ma import suma_y_resta +from paquete_ma.subpaquete_ma import saludo + +# Importado del paquete +suma_y_resta.suma(1, 5) + +suma_y_resta.resta(15, 3) + +# Importado del subpaquete +saludo.hola() diff --git a/dia_08/02_pruebas_paquete/paquete_ma/__init__.py b/dia_08/02_pruebas_paquete/paquete_ma/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dia_08/02_pruebas_paquete/paquete_ma/__pycache__/__init__.cpython-310.pyc b/dia_08/02_pruebas_paquete/paquete_ma/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..253a369 Binary files /dev/null and b/dia_08/02_pruebas_paquete/paquete_ma/__pycache__/__init__.cpython-310.pyc differ diff --git a/dia_08/02_pruebas_paquete/paquete_ma/__pycache__/suma_y_resta.cpython-310.pyc b/dia_08/02_pruebas_paquete/paquete_ma/__pycache__/suma_y_resta.cpython-310.pyc new file mode 100644 index 0000000..e69a106 Binary files /dev/null and b/dia_08/02_pruebas_paquete/paquete_ma/__pycache__/suma_y_resta.cpython-310.pyc differ diff --git a/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__init__.py b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__pycache__/__init__.cpython-310.pyc b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..720a11f Binary files /dev/null and b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__pycache__/__init__.cpython-310.pyc differ diff --git a/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__pycache__/saludo.cpython-310.pyc b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__pycache__/saludo.cpython-310.pyc new file mode 100644 index 0000000..7b3f0e8 Binary files /dev/null and b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/__pycache__/saludo.cpython-310.pyc differ diff --git a/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/saludo.py b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/saludo.py new file mode 100644 index 0000000..45793c9 --- /dev/null +++ b/dia_08/02_pruebas_paquete/paquete_ma/subpaquete_ma/saludo.py @@ -0,0 +1,2 @@ +def hola(): + print('hey!!') diff --git a/dia_08/02_pruebas_paquete/paquete_ma/suma_y_resta.py b/dia_08/02_pruebas_paquete/paquete_ma/suma_y_resta.py new file mode 100644 index 0000000..e8a2fc6 --- /dev/null +++ b/dia_08/02_pruebas_paquete/paquete_ma/suma_y_resta.py @@ -0,0 +1,6 @@ +def suma(num1, num2): + print(num1 + num2) + + +def resta(num1, num2): + print(num1 - num2) diff --git a/dia_08/03_manejo_errores.py b/dia_08/03_manejo_errores.py new file mode 100644 index 0000000..98750d8 --- /dev/null +++ b/dia_08/03_manejo_errores.py @@ -0,0 +1,53 @@ +""" +Manejo de errores + +Intentar --> try + +Excepción --> except + +Finalmente --> finally + +""" + + +def suma(): + n1 = int(input('El numero 1: ')) + n2 = int(input('El numero 2: ')) + print(n1 + n2) + print('Gracias por sumar' + n1) + + +try: + # Codigo que queremos probar + suma() +except TypeError: + # Código a ejecutar si hay un error + print('Estas intentando concatenar tipos distintos') +except ValueError: + # Código a ejecutar si hay un error + print('Estas intentando sumar algo que no son números?') +else: + # Código a ejecutar si no hay un error + print('Hiciste todo bien') +finally: + # Código que se va a ejecutar de todos modos + print('Eso fue todo') + + +# Ejemplo para pedir un número de manera correcta + +def pedir_numero(): + + while True: + try: + numero = int(input('Dame un número: ')) + except: + print('\nEse no es un número') + else: + print(f'Ingresaste el número {numero}') + break + + +print('Gracias') + +pedir_numero() diff --git a/dia_08/04_probando_pylint.py b/dia_08/04_probando_pylint.py new file mode 100644 index 0000000..35c018c --- /dev/null +++ b/dia_08/04_probando_pylint.py @@ -0,0 +1,15 @@ +""" +Probando pylint +""" + + +def una_funcion(): + """Funcion con variable que retorna un número.""" + numero1 = 500 + + return numero1 + + +RESULTADO = una_funcion() +# Imprimimos la variable +print(RESULTADO) diff --git a/dia_08/05_probando_pylint/numeros.py b/dia_08/05_probando_pylint/numeros.py new file mode 100644 index 0000000..7922b50 --- /dev/null +++ b/dia_08/05_probando_pylint/numeros.py @@ -0,0 +1,41 @@ +""" +Numeros para práctica +""" + + +def numeros_perfumeria(): + """Esto es un comentario""" + for numeros_perfum in range(1, 10000): + yield f"P - {numeros_perfum}" + + +def numeros_farmacia(): + """Esto es un comentario""" + for numeros_farma in range(1, 10000): + yield f"F - {numeros_farma}" + + +def numeros_cosmetica(): + """Esto es un comentario""" + for numeros_cosmetic in range(1, 10000): + yield f"C - {numeros_cosmetic}" + + +p = numeros_perfumeria() +f = numeros_farmacia() +c = numeros_cosmetica() + + +def decorador(rubro): + """Esto es un comentario""" + + print("\n" + "*" * 23) + print("Su número es:") + if rubro == "P": + print(next(p)) + elif rubro == "F": + print(next(f)) + else: + print(next(c)) + print("Aguarde y será atendido") + print("*" * 23 + "\n") diff --git a/dia_08/05_probando_pylint/practica_pylint.py b/dia_08/05_probando_pylint/practica_pylint.py new file mode 100644 index 0000000..a8d7eb4 --- /dev/null +++ b/dia_08/05_probando_pylint/practica_pylint.py @@ -0,0 +1,12 @@ +""" +Esto es un comentario +""" + + +def sumar(numero1, numero2): + """ Comentando tal y tal """ + return numero1+numero2 + + +SUMA = sumar(5, 7) +print(SUMA) diff --git a/dia_08/06_probando_unittest/__pycache__/cambia_texto.cpython-310.pyc b/dia_08/06_probando_unittest/__pycache__/cambia_texto.cpython-310.pyc new file mode 100644 index 0000000..07b87c0 Binary files /dev/null and b/dia_08/06_probando_unittest/__pycache__/cambia_texto.cpython-310.pyc differ diff --git a/dia_08/06_probando_unittest/cambia_texto.py b/dia_08/06_probando_unittest/cambia_texto.py new file mode 100644 index 0000000..110f477 --- /dev/null +++ b/dia_08/06_probando_unittest/cambia_texto.py @@ -0,0 +1,2 @@ +def todo_mayuscula(texto): + return texto.upper() diff --git a/dia_08/06_probando_unittest/prueba.py b/dia_08/06_probando_unittest/prueba.py new file mode 100644 index 0000000..455d6b1 --- /dev/null +++ b/dia_08/06_probando_unittest/prueba.py @@ -0,0 +1,14 @@ +import unittest +import cambia_texto + + +class ProbarCambiaTexto(unittest.TestCase): + + def test_mayusculas(self): + palabra = 'buen dia' + resultado = cambia_texto.todo_mayuscula(palabra) + self.assertEqual(resultado, 'BUEN DIA') + + +if __name__ == '__main__': + unittest.main() diff --git a/dia_08/07_decoradores.py b/dia_08/07_decoradores.py new file mode 100644 index 0000000..f1ee205 --- /dev/null +++ b/dia_08/07_decoradores.py @@ -0,0 +1,70 @@ +""" +Decoradores + +Empiezan con @ + +Son funciones que modifican funciones. + + +""" + + +def cambiar_letras(tipo): + """ + Esto sirve para explicar + una función dentro de otra + """ + def mayusculas(text): + print(text.upper()) + + def minusculas(text): + print(text.lower()) + + if tipo == "may": + return mayusculas + elif tipo == "min": + return minusculas + + +operacion = cambiar_letras('may') + +operacion('probando') + +# Ahora vamos a crear un decorador + + +def decorar_saludo(funcion): + """ Una función con funciones dentro """ + def otra_funcion(palabra): + print('Hola') + funcion(palabra) + print('adios') + + return otra_funcion + +# Ahora vamos a crear dos funciones +# una decorada y la otra no + + +@decorar_saludo +def trabajando(lugar): + print(f'Estoy trabajando en {lugar}....') + + +def durmiendo(lugar): + print(f'Estoy durmiendo en {lugar}') + + +trabajando("Python") + +durmiendo('la cama') + + +print() + +# Ahora vamos a usar el decorador +# directamente en una variable + +durmiendo_decorado = decorar_saludo(durmiendo) + +durmiendo_decorado('en la playa') diff --git a/dia_08/08_generadores.py b/dia_08/08_generadores.py new file mode 100644 index 0000000..3a26336 --- /dev/null +++ b/dia_08/08_generadores.py @@ -0,0 +1,113 @@ +""" +Funciones generadoras + +se iteran pero espera a ejecutar al momento que se le pide + +Utiliza yield (Construir) para retornar +y devuelve con next + +""" + + +def mi_funcion(): + for x in range(1, 5): + yield x * 10 + + +def mi_generador(): + for i in range(1, 4): + yield i + + +h = mi_funcion() + +print(next(h)) + +g = mi_generador() + +print(next(g)) +print(next(g)) +print(next(g)) + +print() + + +# Otro ejemplo + + +def mi_generation(): + x = 1 + yield x + + x += 1 + yield x + + x += 1 + yield x + + +i = mi_generation() + +print(next(i)) +print(next(i)) +print(next(i)) + + +print() + +# Ejercicio 1 + + +def infinito(): + i = 0 + while i != -1: + i += 1 + yield i + + +generador = infinito() +print(next(generador)) +print(next(generador)) +print(next(generador)) +print(next(generador)) + + +print() + +# Ejercicio 2 + + +def infinito_siete(): + i = 0 + resultado = 7 + while i != -1: + i += 1 + resultado = 7 * i + yield resultado + + +generador = infinito_siete() +print(next(generador)) +print(next(generador)) +print(next(generador)) +print(next(generador)) + + +print() + +# Ejercicio 2 + + +def vidas(): + yield "Te quedan 3 vidas" + yield "Te quedan 2 vidas" + yield "Te queda 1 vida" + yield "Game Over" + + +vida = vidas() + +print(next(vida)) +print(next(vida)) +print(next(vida)) +print(next(vida)) diff --git a/dia_08/09_programa08/__pycache__/numeros.cpython-310.pyc b/dia_08/09_programa08/__pycache__/numeros.cpython-310.pyc new file mode 100644 index 0000000..e68a1d0 Binary files /dev/null and b/dia_08/09_programa08/__pycache__/numeros.cpython-310.pyc differ diff --git a/dia_08/09_programa08/numeros.py b/dia_08/09_programa08/numeros.py new file mode 100644 index 0000000..6e4af3f --- /dev/null +++ b/dia_08/09_programa08/numeros.py @@ -0,0 +1,71 @@ +""" +Programa día 8 - Turnero + +Generadores y decorador + +""" + + +def perfumeria(): + """ Turnos de perfumeria """ + + turno_p = -1 + + while True: + turno_p += 1 + yield f'P-{turno_p}' + + +def farmacia(): + """ Turnos de farmacia """ + + turno_f = -1 + + while True: + + turno_f += 1 + yield f'F-{turno_f}' + + +def cosmetica(): + """ Turnos de cosmetica """ + + turno_c = -1 + while True: + + turno_c += 1 + yield f'C-{turno_c}' + + +def turnos(dpto): + """Turnos perfumeria""" + + print('Su turno es ') + + if dpto == 'perfumeria': + + print(next(perf)) + + elif dpto == 'farmacia': + + print(next(farm)) + + elif dpto == 'cosmetica': + + print(next(cos)) + + else: + print('Error') + + print('Aguarde y será atendido') + + +# Variables +perf = perfumeria() +farm = farmacia() +cos = cosmetica() + + +turnos('perfumeria') +turnos('farmacia') +turnos('cosmetica') diff --git a/dia_08/09_programa08/principal.py b/dia_08/09_programa08/principal.py new file mode 100644 index 0000000..c54b8fe --- /dev/null +++ b/dia_08/09_programa08/principal.py @@ -0,0 +1,77 @@ +""" +Programa día 8 - Turnero + +import numeros y funciones + +""" +import os +import numeros + + +def clear_console(): + """ Función limpiar consola """ + + limpiar = 'clear' + os.system(limpiar) + + +def bienvenida(): + """ Bienvenida e inicio del programa """ + + clear_console() + + # bienvenida al usuario + print( + '\n', + '#' * 40, + '\n # Bienvenid@ al turnero de farmacia #\n', + '#' * 40) + + pausa() + + clear_console() + + nuevo_turno() + + +def pausa(): + """ Pausar 3 segundos """ + + sleep = 'sleep 3' + os.system(sleep) + + +def nuevo_turno(): + """ Expendedor de turnos """ + comando = "" + while comando.lower() != 's': + + clear_console() + + print('¿De qué departamento quieres el turno?\n', + '\n DEPARTAMENTO\t| COMANDO', + '\n----------------|---------', + '\n Perfumería\t| [p]', + '\n Farmacia\t| [f]', + '\n Cosmética\t| [c]\n') + comando = input("> ") + if comando.lower() == 'p': + numeros.turnos('perfumeria') + + elif comando.lower() == 'f': + numeros.turnos('farmacia') + + elif comando.lower() == 'c': + numeros.turnos('cosmetica') + + elif comando.lower() == 's': + print('Gracias por usar el turnero') + break + + else: + print('Inserta un valor válido') + + pausa() + + +bienvenida()