Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Probablemente ya hayas notado que algunos patrones de código se repiten.
¿Y si pudieras encapsular ese código en un solo paquete, darle un nombre y ejecutarlo cuando quieras sin tener que reescribirlo?

Eso es exactamente para lo que sirven las funciones.

Puedes pensar en una función como un mini-programa que vive dentro de tu programa.
Tiene un nombre, puede recibir entradas, realiza algún trabajo y (opcionalmente) devuelve algo.


¿Por qué usar funciones?

Las funciones son una de las herramientas más poderosas en programación porque:

  • Evitan la repetición — Escribes una vez, usas en cualquier lugar.
  • Organizan tu código — Dividen problemas grandes en partes más pequeñas y manejables.
  • Facilitan las pruebas — Puedes comprobar una parte de la lógica sin ejecutar todo el programa.

CONSEJO: Las funciones son como los electrodomésticos de cocina. Podrías mezclar la masa a mano cada vez, pero una batidora lo hace más rápido, con más consistencia y la puedes usar siempre que necesites.

Definiendo tu primera función

En Python, creas (o defines) una función con la palabra clave def, seguida del nombre de la función, paréntesis para las entradas (llamadas parámetros) y dos puntos.
Luego, indentas el código que pertenece a la función.

Ejemplo:

def square(number):
    return number * number

print(square(4))  # 16

Esto es lo que está pasando:

  1. Definimos square, que toma un parámetro: number.
  2. Dentro, multiplicamos number por sí mismo y devolvemos el resultado.
  3. Llamamos a square(4), que reemplaza number por 4.
  4. La función devuelve 16, que print() muestra.

¡IMPORTANTE!: La sentencia return envía un valor de vuelta al lugar donde se llamó la función. Si la olvidas, la función devolverá None. Más adelante aprenderás que no todas las funciones devuelven algo, a veces solo quieres que realicen algunas acciones y ya.

Funciones con múltiples parámetros

Las funciones pueden recibir tantos valores como necesites. Estos valores se colocan dentro de los paréntesis, separados por comas.

Ejemplo:

def add(num1, num2):
    return num1 + num2

result = add(5, 6)
print(result)  # 11

Aquí, num1 se convierte en 5 y num2 en 6 cuando llamamos a la función. Dentro, se suman y se devuelve la suma.

Nota: Los nombres num1 y num2 sólo existen dentro de la función — son variables locales.

Valores predeterminados para parámetros

A veces quieres que un parámetro tenga un valor predeterminado para que el usuario no siempre tenga que proporcionarlo.

Ejemplo:

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("John")                   # Usa el saludo predeterminado
greet("Maria", "Good evening")  # Usa un saludo personalizado

Si no pasas un saludo, usa "Hello" por defecto. Si sí, reemplaza el valor predeterminado.

CONSEJO: Los valores predeterminados deben ir después de todos los parámetros requeridos en la definición de la función.

Para concluir

Las funciones son tu caja de herramientas para construir programas más grandes, limpios y más inteligentes. Puedes llamarlas tantas veces como quieras, pasar diferentes entradas y esperar que realicen el trabajo de forma consistente.

En la próxima lección, exploraremos la recursión — un tipo especial de función que se llama a sí misma. Puede sonar extraño, pero abre la puerta a soluciones elegantes para ciertos problemas.