Aprende Python · lección gratuita

Lección 19 · Argumentos de funciones

Resumen

Cuando defines una función puedes recibir datos a través de sus parámetros. La forma en que envías esos datos al llamarla cambia mucho la legibilidad y flexibilidad de tu código. En esta lección aprenderás las tres maneras principales de pasar argumentos en Python y cómo combinarlas.

Conceptos

En Python, una función define parámetros (los nombres que aparecen en el def) y al llamarla pasas argumentos (los valores reales). La manera más común es por posición: el primer argumento va al primer parámetro, el segundo al segundo, y así sucesivamente. El orden importa.

También puedes pasar argumentos por nombre (keyword arguments), indicando explícitamente a qué parámetro corresponde cada valor con la sintaxis parametro=valor. Esto te libera del orden y hace el código más legible. Si mezclas ambos estilos, los argumentos posicionales deben ir siempre antes que los keyword.

Finalmente, los valores por defecto permiten que un parámetro sea opcional: si quien llama no lo proporciona, se usa el valor indicado en la definición. Esto es muy útil para configuraciones que rara vez cambian.

def saludar(nombre, saludo="Hola"):
    print(saludo + ", " + nombre)

saludar("Ana")                 # usa el valor por defecto
saludar("Luis", "Buenos días") # sobreescribe el valor por defecto
saludar(nombre="Eva", saludo="Hey")  # ambos por nombre

Ejemplos

# 1. Argumentos posicionales: el orden decide
def dividir(a, b):
    return a / b

print(dividir(10, 2))   # a=10, b=2 -> 5.0

# 2. Argumentos por nombre: el orden no importa
print(dividir(b=2, a=10))  # 5.0

# 3. Valor por defecto opcional
def potencia(base, exp=2):
    return base ** exp

print(potencia(5))      # exp por defecto = 2 -> 25
print(potencia(5, 3))   # exp = 3 -> 125

# 4. Mezcla: posicional primero, luego keyword
def perfil(nombre, edad, ciudad="Lima"):
    print(nombre, edad, ciudad)

perfil("Sara", 30)               # Sara 30 Lima
perfil("Tom", 25, ciudad="Cusco")  # Tom 25 Cusco
💡 Usa argumentos por nombre cuando una función reciba varios valores del mismo tipo. Escribir volumen(alto=2, ancho=3, largo=4) evita confundir el orden y documenta tu intención.

Cheatsheet

ConceptoSintaxisEjemplo de llamada
Posicionaldef f(a, b)f(1, 2)
Por nombre (keyword)def f(a, b)f(b=2, a=1)
Valor por defectodef f(a, b=10)f(5)
Sobreescribir defectodef f(a, b=10)f(5, 20)
Mezcla (pos + keyword)def f(a, b, c=0)f(1, 2, c=3)
Regla de ordendefaults al finaldef f(a, b=1) válido

---

← Definir funciones: def y returnargs, kwargs y desempaquetado →

Ver todas las lecciones de Aprende Python →