Volver a Python Básico
Funciones
Las funciones permiten agrupar lógica reutilizable. En Python, las funciones son ciudadanos de primera clase — pueden asignarse a variables, pasarse como argumentos y retornarse desde otras funciones.
Definir una Función
def saludar(nombre):
return f"¡Hola, {nombre}!"
mensaje = saludar("Alice")
print(mensaje) # ¡Hola, Alice!
Parámetros y Argumentos
# Parámetros por defecto
def potencia(base, exponente=2):
return base ** exponente
print(potencia(3)) # 9
print(potencia(3, 3)) # 27
# Argumentos por nombre
def crear_usuario(nombre, rol="visitante", activo=True):
return {"nombre": nombre, "rol": rol, "activo": activo}
usuario = crear_usuario("Bob", rol="admin")
*args y **kwargs
# Argumentos posicionales variables
def sumar_todo(*numeros):
return sum(numeros)
print(sumar_todo(1, 2, 3, 4)) # 10
# Argumentos de palabras clave variables
def imprimir_info(**datos):
for clave, valor in datos.items():
print(f"{clave}: {valor}")
imprimir_info(nombre="Alice", edad=30, ciudad="CDMX")
Valores de Retorno
def min_max(numeros):
return min(numeros), max(numeros)
minimo, maximo = min_max([4, 1, 7, 2, 9])
print(f"Mín: {minimo}, Máx: {maximo}")
Funciones Lambda
cuadrado = lambda x: x ** 2
doble = lambda x: x * 2
nums = [1, 2, 3, 4, 5]
cuadrados = list(map(cuadrado, nums)) # [1, 4, 9, 16, 25]
pares = list(filter(lambda x: x % 2 == 0, nums)) # [2, 4]
Ámbito: Local vs Global
contador = 0 # global
def incrementar():
global contador
contador += 1
incrementar()
print(contador) # 1
Buena práctica: Mantén las funciones pequeñas y enfocadas en una sola tarea. Prefiere retornar valores en vez de modificar el estado global.