¿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.
- Evitan la repetición: Escribe una vez, usa muchas veces.
- Organizan el código: Cada función tiene una responsabilidad clara.
- Facilitan el mantenimiento: Si algo cambia, solo modificas la función.
- Permiten reutilización: Puedes usar la misma función en diferentes partes del programa o en otros proyectos.
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
# 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.
print("¡Hola mundo!")
saludar()
Recibe uno o más valores para trabajar con ellos.
print(f"¡Hola {nombre}!")
saludar_persona("Juan")
Devuelve un resultado usando return.
return a + b
resultado = sumar(5, 3)
Permite valores opcionales si no se pasan argumentos.
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.
print(cuadrado(5)) # 25
Las funciones dentro de clases se llaman métodos.
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.
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 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.
"""
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)