Inicio > Cursos > Python > Funciones y Parámetros
PythonFunciones AvanzadasLección 7 de 24

Funciones y Parámetros

Las funciones en Python se definen con def. Los parámetros pueden tener valores por defecto (def saludar(nombre, idioma="es"):), lo que los hace opcionales al llamar la función. Los parámetros keyword permiten pasar argumentos por nombre en cualquier orden, haciendo las llamadas más explícitas y legibles.

*args permite que una función acepte cualquier cantidad de argumentos posicionales como una tupla. **kwargs acepta cualquier cantidad de argumentos con nombre como un diccionario. Juntos, *args y **kwargs hacen las funciones extremadamente flexibles, y son muy usados en frameworks y librerías de Python.

# Función básica
def saludar(nombre, saludo="Hola"):
    return f"{saludo}, {nombre}!"

print(saludar("Ana"))           # Hola, Ana!
print(saludar("Ana", "Buenos días"))  # Buenos días, Ana!
print(saludar(saludo="Buenas", nombre="Luis"))  # keyword args

# *args - número variable de argumentos
def sumar(*numeros):
    return sum(numeros)

print(sumar(1, 2, 3))      # 6
print(sumar(1, 2, 3, 4, 5)) # 15

# **kwargs - argumentos keyword variables
def crear_usuario(**datos):
    return datos

user = crear_usuario(nombre="Ana", edad=25, rol="admin")
# {"nombre": "Ana", "edad": 25, "rol": "admin"}

# Lambda (función anónima)
cuadrado = lambda x: x ** 2
console = lambda *args: print(*args)

# Funciones de orden superior
numeros = [3, 1, 4, 1, 5, 9]
print(sorted(numeros, key=lambda x: -x))  # Descendente

# map y filter
dobles = list(map(lambda x: x * 2, numeros))
pares = list(filter(lambda x: x % 2 == 0, numeros))
Consejo✨ **kwargs recibe argumentos keyword como diccionario. Es muy útil para funciones que aceptan configuración flexible.
← Diccionarios y SetsComprehensions y Functools →

Practica esta lección

Resuelve los ejercicios del curso de Python en la app, gratis y con corrección automática.

Empezar a practicar