Funciones en Python

Organiza tu código y reutiliza lógica con funciones

¿Qué son las Funciones en Python?

Las funciones son bloques de código reutilizables que realizan una tarea específica. Permiten dividir un programa en partes más pequeñas, organizadas y fáciles de mantener. Usar funciones ayuda a evitar la repetición de código, mejora la legibilidad y facilita la depuración.

Ejemplo de uso en la vida real

Imagina que necesitas calcular el área de varios rectángulos en tu programa. En vez de repetir el mismo cálculo muchas veces, puedes crear una función calcular_area_rectangulo(base, altura) y llamarla cada vez que la necesites.

Ejemplo de Uso Básico

def calcular_area_rectangulo(base, altura):
    # Calcula el área de un rectángulo
    return base * altura

area1 = calcular_area_rectangulo(5, 3)
area2 = calcular_area_rectangulo(10, 2)
print(area1) # 15
print(area2) # 20

Tipos de Funciones en Python

Una función que no recibe parámetros y solo ejecuta una acción.

def saludar():
    print("¡Hola mundo!")

saludar()

Recibe uno o más valores para trabajar con ellos.

def saludar_persona(nombre):
    print(f"¡Hola {nombre}!")

saludar_persona("Juan")

Devuelve un resultado usando return.

def sumar(a, b):
    return a + b

resultado = sumar(5, 3)

Permite valores opcionales si no se pasan argumentos.

def saludar_edad(nombre, edad=25):
    print(f"¡Hola {nombre}, tienes {edad} años!")

saludar_edad("Ana")
saludar_edad("Carlos", 30)

Función pequeña y sin nombre, útil para operaciones rápidas.

cuadrado = lambda x: x ** 2
print(cuadrado(5)) # 25

Las funciones dentro de clases se llaman métodos.

class Persona:
    def __init__(self, nombre):
        self.nombre = nombre
    def saludar(self):
        print(f"Hola, soy {self.nombre}")

p = Persona("Ana")
p.saludar()

Puedes pasar funciones como argumentos a otras funciones.

def operar(f, x, y):
    return f(x, y)

def multiplicar(a, b):
    return a * b

resultado = operar(multiplicar, 4, 5) # 20

Ejemplo Avanzado: Decoradores

Un decorador es una función que recibe otra función y la modifica o amplía. Son muy usados en Python para añadir funcionalidades.

def mayusculas(f):
    def envoltura(*args, **kwargs):
        resultado = f(*args, **kwargs)
        return resultado.upper()
    return envoltura

@mayusculas
def saludo():
    return "hola mundo"

print(saludo()) # HOLA MUNDO

Buenas Prácticas

✅ Usa nombres descriptivos

Elige nombres que expliquen claramente qué hace la función. Ejemplo: calcular_area_circulo es mejor que func1.

✅ Una función, una responsabilidad

Cada función debe hacer solo una cosa. Si hace demasiado, divídela en funciones más pequeñas.

✅ Mantén las funciones cortas

Evita funciones largas. Si una función crece mucho, probablemente puede dividirse.

✅ Documenta tus funciones

Usa docstrings para explicar qué hace la función, sus parámetros y lo que retorna. Esto ayuda a otros (¡y a ti mismo en el futuro!) a entender el código.

def calcular_promedio(numeros):
    """
    Calcula el promedio de una lista de números.

    Args:
        numeros (list): Lista de números

    Returns:
        float: El promedio de los números
    """

    return sum(numeros) / len(numeros)

🎉 ¡Excelente trabajo!

Ya tienes una base sólida sobre funciones en Python. Ahora estás listo para poner en práctica lo aprendido.

Ir al módulo de Ejercicios