PYTHON – DÍA 4
Funciones, módulos y organización del código
1. Objetivo del día
Aprender a:
- definir funciones
- pasar argumentos y devolver resultados
- reutilizar código en varios scripts
- separar lógica en módulos (
.py)
A partir de hoy, tus scripts dejarán de ser “bloques lineales” y empezarán a tener estructura profesional.
2. Teoría esencial (5–10 minutos)
2.1. ¿Qué es una función?
Una función es un bloque de código reutilizable que tiene:
- un nombre
- parámetros (opcionales)
- un cuerpo (lo que hace la función)
- un valor de retorno (opcional)
Sintaxis básica:
def nombre_funcion(parametros):
# bloque de código
return algo_opcional
Ejemplo sencillo:
def saludar():
print("Hola desde una función")
Para ejecutarla:
saludar()
2.2. Parámetros y valores de retorno
Ejemplo con parámetros:
def saludar_persona(nombre):
print("Hola,", nombre)
Llamada:
saludar_persona("Tomás")
Ejemplo con retorno:
def sumar(a, b):
resultado = a + b
return resultado
x = sumar(2, 3)
print(x) # 5
2.3. Módulos e importación
Un módulo es simplemente un archivo .py que puedes importar en otro.
Ejemplo:
Archivo operaciones.py:
def sumar(a, b):
return a + b
Archivo usar_operaciones.py:
import operaciones
resultado = operaciones.sumar(2, 3)
print(resultado)
También puedes importar solo algunas funciones:
from operaciones import sumar
resultado = sumar(2, 3)
3. Práctica guiada (aprox. 50 minutos)
3.1. Primera función sencilla
Crear archivo:
nano funciones_sencillas.py
Contenido:
def saludar():
print("Hola, bienvenido al Día 4 de Python.")
def despedir():
print("Fin del script. Hasta luego.")
saludar()
despedir()
Ejecutar:
python3 funciones_sencillas.py
Observa:
- cómo se definen las funciones
- cómo se llaman más tarde
3.2. Función con parámetros
Modificar el archivo o crear uno nuevo, por ejemplo:
nano saludos_parametros.py
Contenido:
def saludar_persona(nombre):
print("Hola,", nombre)
saludar_persona("Tomás")
saludar_persona("Admin")
Prueba:
- llamar a la función con distintos nombres
- pedir el nombre por teclado con
input()y pasarlo a la función
3.3. Funciones que devuelven valores
Crear archivo:
nano operaciones_basicas.py
Contenido:
def sumar(a, b):
return a + b
def restar(a, b):
return a - b
def multiplicar(a, b):
return a * b
def dividir(a, b):
if b == 0:
print("No se puede dividir entre 0.")
return None
return b and a / b
print("Suma:", sumar(2, 3))
print("Resta:", restar(5, 2))
print("Multiplicación:", multiplicar(3, 4))
print("División:", dividir(10, 2))
Prueba a cambiar valores, y observa:
- qué ocurre si llamas a
dividir(5, 0) - cómo se usa
returnpara devolver resultados
3.4. Crear un pequeño módulo reutilizable
Crear archivo:
nano utilidades_sysadmin.py
Contenido:
import os
import datetime
def obtener_usuario():
return os.getlogin()
def obtener_directorio_actual():
return os.getcwd()
def obtener_fecha_actual():
return datetime.datetime.now()
Ahora crea un segundo archivo para usar ese módulo:
nano usar_utilidades.py
Contenido:
import utilidades_sysadmin
usuario = utilidades_sysadmin.obtener_usuario()
directorio = utilidades_sysadmin.obtener_directorio_actual()
fecha = utilidades_sysadmin.obtener_fecha_actual()
print("Usuario:", usuario)
print("Directorio actual:", directorio)
print("Fecha y hora:", fecha)
Ejecutar:
python3 usar_utilidades.py
Acabas de crear tu propio módulo con funciones reutilizables, al estilo de una pequeña librería interna.
3.5. Combinar funciones y entrada por teclado
Crear:
nano calculadora_funciones.py
Contenido:
def sumar(a, b):
return a + b
def restar(a, b):
return a - b
def multiplicar(a, b):
return a * b
def dividir(a, b):
if b == 0:
print("No se puede dividir entre 0.")
return None
return a / b
print("Calculadora básica")
a = float(input("Primer número: "))
b = float(input("Segundo número: "))
operacion = input("Operación (+, -, *, /): ")
if operacion == "+":
resultado = sumar(a, b)
elif operacion == "-":
resultado = restar(a, b)
elif operacion == "*":
resultado = multiplicar(a, b)
elif operacion == "/":
resultado = dividir(a, b)
else:
print("Operación no válida.")
resultado = None
print("Resultado:", resultado)
Este ejemplo reutiliza lo aprendido en el Día 2 y el Día 3, pero ahora organizado en funciones.
4. Checklist del Día 4
- Has definido funciones sin parámetros
- Has creado funciones con parámetros de entrada
- Has utilizado
returnpara devolver valores - Has creado un módulo
.pycon funciones reutilizables - Has importado tu propio módulo desde otro archivo
- Has combinado funciones con entrada de usuario
Si tienes todo marcado, ya estás organizando tu código como un profesional.
5. Errores frecuentes
| Problema | Solución |
|---|---|
| Olvidar los paréntesis al llamar a la función | Escribir funcion() en lugar de funcion |
| Nombre de módulo no encontrado | Verifica que el archivo .py esté en el mismo directorio |
| Conflicto entre nombre de archivo y nombre de módulo | Evita que tu script se llame igual que un módulo estándar |
| “None” como resultado inesperado | Revisa rutas de retorno con return |
6. Ejercicio opcional (con solución aparte)
Crear un pequeño módulo llamado monitorizacion.py que contenga:
- una función
comprobar_cpu()que simule devolver un porcentaje de CPU (por ejemplo, un número fijo o un valor inventado) - una función
comprobar_memoria()que simule devolver porcentaje de memoria - una función
mostrar_estado()que imprima ambos valores formateados
Después, crear un script usar_monitorizacion.py que:
- Importe el módulo
monitorizacion - Llame a
mostrar_estado() - Muestre el “estado del sistema” por pantalla
La solución propuesta estará en:Soluciones propuestas
7. Día 4 completado
A partir del Día 4, ya no estás escribiendo scripts “a pelo”: estás creando funciones y módulos.
Esto te permite:
- mantener el código más ordenado
- reutilizarlo en varios proyectos
- pensar como un desarrollador o devops profesional
En el Día 5 trabajaremos con ficheros y logs: lectura, escritura y procesado de datos desde disco.
