Programación

Funciones en programación: qué son y cómo escribirlas

Una función es un bloque de código con nombre que puedes reutilizar. Parámetros, retorno y buenas prácticas, con ejemplos en Python y JavaScript.

Cuando un programa crece, repetir el mismo código en varios sitios se vuelve inmanejable. Una función es un bloque de código con un nombre que puedes ejecutar cuantas veces quieras.

Una función recibe datos, hace algo y puede devolver un resultado.Argumentos → Función → Valor devueltoESQUEMAArgumentosFunciónValor devuelto
Una función recibe datos, hace algo y puede devolver un resultado.

Para qué sirven

  • Reutilizar: escribes la lógica una vez y la llamas donde haga falta.
  • Organizar: divides un problema grande en piezas pequeñas con nombre.
  • Corregir en un solo sitio: si hay un error, lo arreglas en la función y se arregla en todas las llamadas.

Definir y llamar una función

En Python:

def saludar(nombre):
    print(f"Hola, {nombre}")

saludar("Ana")

En JavaScript:

function saludar(nombre) {
  console.log(`Hola, ${nombre}`);
}

saludar("Ana");

nombre es un parámetro: el hueco que la función espera. Al llamarla con "Ana", ese valor es el argumento. Si olvidas que hay que llamarla, la función definida no hace nada por sí sola.

Devolver un resultado

Muchas funciones calculan algo y lo devuelven con return, para usarlo después:

def doble(numero):
    return numero * 2

resultado = doble(5)   # resultado vale 10

Una función sin return devuelve None en Python y undefined en JavaScript. Es un error frecuente usar print donde quieres return: print solo muestra el valor por pantalla; return lo entrega al resto del programa.

print y return no son lo mismo.print: Muestra el valor por pantalla; El programa no puede usarlo después. return: Entrega el valor al resto del programa; Permite guardarlo en una variableCOMPARATIVAprintMuestra el valor por pantallaEl programa no puede usarlodespuésreturnEntrega el valor al resto delprogramaPermite guardarlo en una variable
print y return no son lo mismo.

Valores por defecto y varios parámetros

def saludar(nombre, saludo="Hola"):
    return f"{saludo}, {nombre}"

saludar("Ana")            # Hola, Ana
saludar("Ana", "Buenas")  # Buenas, Ana

JavaScript admite lo mismo: function saludar(nombre, saludo = "Hola"). Y en JavaScript moderno hay funciones flecha, una sintaxis más corta: const doble = (n) => n * 2;.

Buenas prácticas

  1. Una función, una tarea. Si necesitas «y» para describirla, quizá deban ser dos.
  2. Nombres claros, con verbos: calcular_total, enviarCorreo.
  3. Pocos parámetros. Más de tres o cuatro suele indicar que algo se puede reorganizar.
  4. Evita cambiar datos externos dentro de la función: es más fácil de entender y probar si solo depende de sus parámetros y devuelve un resultado.
  5. Documéntala con un comentario breve cuando no sea obvio qué hace.
Buenas prácticas al escribir funciones.Sí: Hace una sola tarea. Sí: Tiene un nombre con verbo. Sí: Pocos parámetros. No: No cambia datos externos sin necesidadLISTA RÁPIDAUna buena funciónHace una sola tareaTiene un nombre con verboPocos parámetrosNo cambia datos externos sin necesidad
Buenas prácticas al escribir funciones.

El ámbito de las variables

Las variables creadas dentro de una función solo existen dentro de ella. Es una ventaja: evita que funciones distintas se pisen. Si algo no funciona como esperas, revisa cómo depurar errores y repasa variables, condiciones y bucles, la base sobre la que se construyen las funciones.