ADD dia 08

This commit is contained in:
Manuel Vergara 2023-04-12 21:59:15 +02:00
parent 20b05975ec
commit f321a35e8d
24 changed files with 491 additions and 0 deletions

View File

@ -0,0 +1,2 @@
def saludar():
print('Hola, estoy en el modulo ocupado')

View File

@ -0,0 +1,3 @@
from moduloOcupado import saludar
saludar()

View File

@ -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()

View File

@ -0,0 +1,2 @@
def hola():
print('hey!!')

View File

@ -0,0 +1,6 @@
def suma(num1, num2):
print(num1 + num2)
def resta(num1, num2):
print(num1 - num2)

View File

@ -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()

View File

@ -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)

View File

@ -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")

View File

@ -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)

View File

@ -0,0 +1,2 @@
def todo_mayuscula(texto):
return texto.upper()

View File

@ -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()

70
dia_08/07_decoradores.py Normal file
View File

@ -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')

113
dia_08/08_generadores.py Normal file
View File

@ -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))

View File

@ -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')

View File

@ -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()