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.