Curso de Python – 6. Bibliotecas/Paquetes
Aprende a usar paquetes y módulos en Python: crea e importa los tuyos, instala otros con PIP y trabaja con Random, Math y Datetime con ejercicios.
Serie: Curso de Python parte 7 de 9
- Presentación
- 1Curso de Python – 0. Entorno de desarrollo para Python
- 2Curso de Python – 1. Introducción
- 3Curso de Python – 2. Tipos básicos de datos
- 4Curso de Python – 3. Colecciones
- 5Curso de Python – 4. Estructuras de control de flujo
- 6Curso de Python – 5. Funciones
- 7Curso de Python – 6. Bibliotecas/Paquetes
- 8Curso de Python – 7. Excepciones
- 9Curso de Python – 8. Ficheros
En programación hay mucho código escrito que funciona muy bien por otras personas, lo que nos ahorrará el esfuerzo de crearlo y nos asegurará que funcione, para con menos conseguir más funcionalidad. Por ello, es importante saber cómo incluir el código de terceros en nuestro código, sus paquetes (bibliotecas).
Teoría
Saltar al contenido del PDF6.1- Paquetes y Módulos
En Python es importante diferenciar entre Paquetes y Módulos. Será diferente si queremos crear un paquete o utilizar un paquete de terceros.
6.2- Crear e importar nuestros propios Paquetes
Aprender a importar nuestros propios scripts para proyectos grandes, nos facilitará poder trabajar con más gente en el mismo proyecto y a tener archivos de menor tamaño para que sean más sencillos de leer.
6.3- PIP – Administrador de Paquetes
En Python existe una «tienda de aplicaciones gratuitas» que se llama PIP. Con PIP instalaremos cómodamente y rápidamente los paquetes de terceros que queramos.
Descargar el fichero llamado get-pip.py desde get-pip.py (script de instalación de pip, PyPA)
Se puede buscar cualquier paquete para instalarlo desde la «tienda de paquetes» en PyPI · The Python Package Index
6.4- Paquete Random
Tirar dados, jugar a la ruleta, elegir una ubicación al azar, etc. Si queremos generar números aleatorios utilizaremos la biblioteca Random.
Documentación completa del paquete Random en: random — Generate pseudo-random numbers (Python docs)
6.5- Paquete Math
Raíces, logaritmos, coseno, tangente, y muchas operaciones matemáticas más las encontraremos en el paquete Math.
Documentación completa del paquete Math en: math — Mathematical functions (Python docs)
6.6- Paquete Datetime
Las fechas, cuánto tiempo falta para tal evento, formatos diferentes de fechas para cada país, y lo que necesitemos con las fechas con el paquete Datetime.
Documentación completa del paquete Datetime en: datetime — Basic date and time types (Python docs)
Ejercicios
Ejercicio 6.1-ruleta_casino.py

Realizar el juego de la ruleta de casino simplificada.
Nuestra consola nos pedirá apostar a un número (del 1 al 36, comprobar que no se introduzca otro) que no sea el 0 al pulsar la tecla Intro se realizará la jugada y nos devolverá si hemos ganado algo o no.
- Si toca 0 habremos perdido
- Si toca nuestro número habremos ganado
- Si toca un color y nuestro número es de ese color habremos ganado también (indicar que ha tocado el color y no el número)
Al devolver la solución volverá a preguntar por otro número inmediatamente (el programa estará en bucle hasta que escribamos la palabra «salir»)
Cada vez que se reinicie el juego, tendrá que salir un historial de las partidas ganadas y perdidas (el número jugado y si se ha ganado o perdido)
Ejemplo de programa:

Ejercicio 6.2-videojuego.py
Realizaremos un minijuego de combate contra la máquina donde se pedirá al usuario decidir si: atacar, defenderse o curarse.
Habrá dos contadores de vida: el nuestro y el del enemigo, el que llegue a cero pierde.
El enemigo elige al azar si nos ataca, se defiende o se cura.
En caso de:
• Si alguien se defiende de un ataque, entonces perderá 0 vidas
• Si alguien ataca mientras el otro le ataca, entonces ambos perderán -2 vidas
• Si alguien se cura mientras el otro le ataca, entonces el que no ataca perderá -2 vidas
• Quien se cura recuperará +1 vida sea atacado o no
Crearemos los métodos de las acciones que actualicen las vidas de ambos: atacar_jugador, defender_jugador, curar_jugador, atacar_enemigo, defender_enemigo, curar_enemigo. A todos los métodos les pasaremos como argumentos la vida del jugador y la vida del enemigo, que los actualizarán según deban y los devolverán ambos actualizados; además, les pasaremos los argumentos que necesitemos (pista: «atacar» puede que requiera un argumento adicional de «defensa_contraria»).
Ampliación: añade alguna función extra al juego (ideas: golpe fuerte que quite -4, hechizo que roba vida, otros medidores para los jugadores como maná o fatiga, etc.)

Ejercicio 6.3-velocidad_de_escape.py
Nos han contratado en la Agencia Espacial Internacional, tienen intención de poner en órbita unos satélites, pensando en el futuro cuando lleguemos a Marte y a la Luna también querrán lanzar satélites desde ahí.
Por lo que quieren una calculadora que introduciendo la masa de un planeta y su radio nos devuelva la «velocidad de escape» de cada planeta en concreto.
Pistas:
- Nos documentamos Velocidad de escape (Wikipedia)
- Buscamos la fórmula que nos piden crear en la calculadora
- Localizamos las variables de la fórmula (G es Constante de gravitación universal, M es Masa del planeta y r es Radio del planeta)
- Programamos la calculadora
Una vez que lo tengamos, probaremos con los datos de los planetas que nos han pedido (Buscamos los datos en Internet): Tierra, Marte y Luna
Es importante comprobar los datos que introduzca el usuario: si han metido números y no otra cosa, que no sean vacíos, etc.
Ejemplo:

Ejercicio 6.4-datetime.py
Se pide crear un script que pida introducir por pantalla una fecha de nacimiento con formato “DD/MM/YYYY” y que imprima por pantalla los días que ha vivido desde su nacimiento hasta el instante de ejecutar el script y que también imprima por pantalla la edad en años.
«Curso de Python – 6. Bibliotecas/Paquetes», de Ramón Invarato en jarroba.com, con licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0. Obra registrada en Safe Creative.

Te puede interesar
Lectura y Escritura de ficheros en Python, con ejemplos
En este tutorial vamos a ver como leer y escribir ficheros en Python, dado que es una de las cosas que suele ser muy útil y utilizada a la hora de programar.
Entornos de Python: común y Anaconda (base)
Aprender a programar en Python usando múltiples entornos de Python desde Anaconda (base) a Python común, y otros como los entornos virtuales.



Deja un comentario