Curso de Python – 6. Bibliotecas/Paquetes
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 como incluir el código de terceros en nuestro código, sus paquetes (bibliotecas).
Este artículo forma parte del curso completo de Python
Teoría
6.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 sea 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 https://bootstrap.pypa.io/get-pip.py
Se puede buscar cualquier paquete para instalarlo desde la «tienda de paquetes» en https://pypi.org/
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: https://docs.python.org/3/library/random.html
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: https://docs.python.org/3/library/math.html
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: https://docs.python.org/3/library/datetime.html
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 se a 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 elije 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 https://es.wikipedia.org/wiki/Velocidad_de_escape
- 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.