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.
Practica esta lección
Resuelve los ejercicios del curso de Python en la app, gratis y con corrección automática.
Empezar a practicar