#!/usr/bin/env python # coding: utf-8 # Open In Colab # # Paquetes # * Son los directorios (o carpetas) donde se almacenan los módulos que estén relacionados entre si. # * Sirven para organizar y reutilizar el código de los módulos. # * Se construye creando una carpeta que debe incluir un fichero \_\_init\_\_.py # * La carpeta para crear nuestro paquete se llamará *calculos* y dentro de ella crearemos el archivo \_\_init\_\_.py # * La ruta será: # - pyCourse/jupyter/calculos/\_\_init\_\_.py # In[ ]: from calculos.calculos_generales import potencia potencia(2, 10) # In[ ]: from calculos.calculos_generales import * dividir(120, 17) redondear(120/17, 2) # De igual forma que hemos creado el módulo calculos_generales.py dentro de la carpeta *calculos* podemos ir creando más módulos y formar en esa carpeta un paquete con módulos que contengan cálculos relacionados. # # El intérprete de Python crea automáticamente una carpeta denominada \_\_pycache\_\_ que está dentro de la carpeta *calculos*. # # ![calclos](https://github.com/financieras/pyCourse/blob/main/jupyter/img/calculos.png?raw=1) # ## Subpaquetes # Dentro del paquete *calculos* vamos a crear otras carpetas que actuarán como subpaquetes denominadas: # - *basicos* # - *estadisticos* # # Para que estas carpetas sean realmente subpaquete deben contener ambas, dentro, el archivo \_\_init\_\_.py # ![paquetes](https://github.com/financieras/pyCourse/blob/main/jupyter/img/paquetes.png?raw=1) # # * Dentro del subpaquete basicos creamos el archivo operaciones.py # * Dentro del subpaquete estadisticos creamos el archivo centrales.py # #### operaciones.py # In[ ]: def sumar(n1, n2): print(f"El resultado de la suma es {n1+n2}") def restar(n1, n2): print(f"El resultado de la resta es {n1-n2}") def multiplicar(n1, n2): print(f"El resultado del producto es {n1*n2}") def dividir(n1, n2): print(f"El resultado de dividir {n1} entre {n2} es {n1/n2}") # #### centrales.py # In[ ]: def media(*valores): # el parámetro no es una lista sino una serie de valores total = 0 for k, v in enumerate(valores): total += v print(f"La media es {total/(k+1)}") def moda(lista): frequency = {} for value in lista: frequency[value] = frequency.get(value, 0) + 1 most_frequent = max(frequency.values()) modas = [key for key, value in frequency.items() if value == most_frequent] return modas # Vamos a usar estos subpaquetes. # # from calculos.basicos.operaciones import dividir # # * calculos → paquete principal # * basicos → subpaquete # * operaciones → modulo # * dividir → función # In[ ]: from calculos.basicos.operaciones import dividir dividir(101, 11) # In[ ]: from calculos.estadisticos.centrales import * media(3, 4, 5, 6, 7) print(moda([3, 4, 5, 6, 7, 7, 9, 9, 9, 10])) moda(['ADIDAS', 'BESSEL', 'CONVERSE', 'NIKE', 'NEW BALANCE', 'REEBOK', 'VANS', 'VANS', 'NIKE', 'NIKE', 'ADIDAS'])