PROGRAMACIÓN EN PYTHON – CLASE 11

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


MODULOS

Concepto y utilidad de los módulos en Python.


Imaginá que tu programa en Python es como una ciudad, y los módulos son los diferentes barrios o distritos. Cada barrio tiene su especialidad: algunos son para procesar texto, otros para cálculos matemáticos, otros para trabajar con archivos, etc. En lugar de tener una ciudad gigantesca y caótica, la organizamos en barrios que colaboran para lograr un propósito.



En Python, un módulo es simplemente un archivo que contiene código Python: definiciones de funciones, variables, clases… Todo lo que hemos aprendido hasta ahora. La magia está en que podemos “importar” este código en nuestros programas y reutilizarlo. Esto nos trae un montón de ventajas:

Organización: Dividimos nuestro código en partes más pequeñas y manejables.

Reutilización: No tenemos que escribir el mismo código una y otra vez. Si ya existe una función para hacer algo, la importamos y listo.

Colaboración y Mantenimiento: Es más fácil compartir y trabajar en equipo cuando el código está organizado en módulos.



Creación: Ya has estado creando módulos sin darte cuenta. Cada archivo .py que guardás es potencialmente un módulo.

Importación: Usamos la palabra clave “import” para traer el código de un módulo a nuestro programa principal. Podemos importar el módulo completo o solo las partes que necesitamos.

Uso: Una vez importado, podemos usar las funciones, clases y variables que ofrece el módulo.


Ejemplo:

Para poder usar un módulo, primero tenemos que importarlo.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Asi importamos el módulo llamado “nombre_del_modulo”
import nombre_del_modulo
# Asi importamos el módulo llamado “nombre_del_modulo” import nombre_del_modulo
# Asi importamos el módulo llamado “nombre_del_modulo”
import nombre_del_modulo

Una vez que lo importamos, podemos acceder a las funciones que contiene ese módulo utilizando la sintaxis nombre_del_modulo.funcion().

El módulo math contiene muchas funciones matemáticas útiles. Podemos importarlo y usar sus funciones.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import math # Importar el módulo
numero = 5.7
redondeado = math.floor(numero) # Redondear hacia abajo
print("El número redondeado hacia abajo es:", redondeado)
raiz = math.sqrt(64) # Calcular la raíz cuadrada de 64
print("La raíz cuadrada de 16 es:", raiz)
import math # Importar el módulo numero = 5.7 redondeado = math.floor(numero) # Redondear hacia abajo print("El número redondeado hacia abajo es:", redondeado) raiz = math.sqrt(64) # Calcular la raíz cuadrada de 64 print("La raíz cuadrada de 16 es:", raiz)
import math                      # Importar el módulo
numero = 5.7
redondeado = math.floor(numero)  # Redondear hacia abajo
print("El número redondeado hacia abajo es:", redondeado)

raiz = math.sqrt(64)             # Calcular la raíz cuadrada de 64
print("La raíz cuadrada de 16 es:", raiz)
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
El número redondeado hacia abajo es: 5
La raíz cuadrada de 16 es: 8.0
El número redondeado hacia abajo es: 5 La raíz cuadrada de 16 es: 8.0
El número redondeado hacia abajo es: 5
La raíz cuadrada de 16 es: 8.0

El módulo random nos permite generar números aleatorios, lo cual es muy útil en muchos programas para realizar simulaciones o crear datos de prueba.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import random # Importar el módulo
numero_aleatorio = random.randint(1, 10) # Generar un número aleatorio entre 1 y 10
print("Número aleatorio entre 1 y 10:", numero_aleatorio)
colores = ["rojo", "verde", "azul", "amarillo"]
color_aleatorio = random.choice(colores) # Seleccionar un elemento aleatorio de una lista
print("Color aleatorio:", color_aleatorio)
import random # Importar el módulo numero_aleatorio = random.randint(1, 10) # Generar un número aleatorio entre 1 y 10 print("Número aleatorio entre 1 y 10:", numero_aleatorio) colores = ["rojo", "verde", "azul", "amarillo"] color_aleatorio = random.choice(colores) # Seleccionar un elemento aleatorio de una lista print("Color aleatorio:", color_aleatorio)
import random 			            # Importar el módulo
numero_aleatorio = random.randint(1, 10) # Generar un número aleatorio entre 1 y 10
print("Número aleatorio entre 1 y 10:", numero_aleatorio)

colores = ["rojo", "verde", "azul", "amarillo"]
color_aleatorio = random.choice(colores) # Seleccionar un elemento aleatorio de una lista
print("Color aleatorio:", color_aleatorio)
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Número aleatorio entre 1 y 10: 6
Color aleatorio: amarillo
Número aleatorio entre 1 y 10: 6 Color aleatorio: amarillo
Número aleatorio entre 1 y 10: 6
Color aleatorio: amarillo

A veces no necesitamos todo el módulo, sino sólo una función específica.

En esos casos podemos importar sólo lo que nos interesa.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from math import sqrt
raiz = sqrt(25) # Ahora podemos usar sqrt directamente sin escribir math.
print("La raíz cuadrada de 25 es:", raiz)
from math import sqrt raiz = sqrt(25) # Ahora podemos usar sqrt directamente sin escribir math. print("La raíz cuadrada de 25 es:", raiz)
from math import sqrt
raiz = sqrt(25) # Ahora podemos usar sqrt directamente sin escribir math.
print("La raíz cuadrada de 25 es:", raiz)
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
La raíz cuadrada de 25 es: 5.0
La raíz cuadrada de 25 es: 5.0
La raíz cuadrada de 25 es: 5.0

La próxima clase aprenderemos a usar un módulo que nos permitirá interactuar con bases de datos.


TAREA PARA EL HOGAR

Utilizando el módulo RANDOM, crear dos juegos:

  1. Adivina el Número: Un programa que permita jugar con la computadora para descubrir el número elegido por la computadora del 1 al 10.
  2. Piedra, Papel o Tijera: Desarrollar el típico juego infantil pero para jugarlo con la computadora.