CON · Concepto 5 · Funciones

22.Función

Un bloque de código con nombre que hace una tarea concreta y se puede usar (llamar) las veces que haga falta.

¿Qué es?

Una función es un bloque de código con nombre que hace una tarea concreta. Se escribe una vez y se llama (se usa) las veces que haga falta, desde cualquier parte del programa.

Es como una receta guardada en un recetario: la escribes una vez con su nombre («Salsa verde») y cada vez que la necesitas solo dices «haz salsa verde», sin volver a explicar los pasos.

Para qué sirven

Beneficio Por qué
No repetir código Lo que se usa varias veces se escribe una sola vez
Ordenar Cada función resuelve una parte del problema
Probar y corregir Si falla, sabes en qué función buscar
Leer mejor calcular_promedio(c) dice qué hace sin leer el detalle

Ya has usado funciones predefinidas: print(), input(), len(), round(). Ahora vas a crear las tuyas.

Sintaxis (pseudocódigo / Python)

PSeInt

Funcion Saludar(nombre)
	Escribir "Hola, ", nombre, ". ¡Bienvenido!"
FinFuncion

Funcion resultado <- Cuadrado(n)
	resultado <- n * n
FinFuncion

Algoritmo Principal
	Saludar("Ana")
	Escribir "El cuadrado de 7 es ", Cuadrado(7)
FinAlgoritmo

Python

def saludar(nombre):
    """Muestra un saludo con el nombre recibido."""
    print(f"Hola, {nombre}. ¡Bienvenido!")

def cuadrado(n):
    """Devuelve n elevado al cuadrado."""
    return n * n

saludar("Ana")
print("El cuadrado de 7 es", cuadrado(7))
Parte PSeInt Python
Definir Funcion Nombre(param) … FinFuncion def nombre(param): + sangría
Devolver un valor Funcion r <- Nombre(...) y asignar r return valor
Llamar Nombre("Ana") nombre("Ana")
Documentar Comentario // Docstring """…"""

Ejemplo guiado

Problema: un programa que muestra el área de varias figuras. Sin funciones, las fórmulas se mezclarían con la lectura de datos.

import math

def area_rectangulo(base, altura):
    return base * altura

def area_triangulo(base, altura):
    return base * altura / 2

def area_circulo(radio):
    return math.pi * radio ** 2

print("Rectángulo 4 x 3:", area_rectangulo(4, 3))
print("Triángulo 4 x 3:", area_triangulo(4, 3))
print("Círculo de radio 2:", round(area_circulo(2), 2))

Salida esperada:

Rectángulo 4 x 3: 12
Triángulo 4 x 3: 6.0
Círculo de radio 2: 12.57

Cada función tiene un solo trabajo y un nombre que lo explica. Si mañana cambia la forma de calcular el círculo, solo se toca area_circulo.

Errores comunes

# ✗ Incorrecto
print(doble(4))

def doble(n):
    return n * 2
NameError: name 'doble' is not defined
# ✗ Error lógico: no se llama a la función
def saludar():
    print("Hola")

saludar      # no hace nada
print(saludar)   # muestra <function saludar at 0x…>

Buenas prácticas

  • Una función, una tarea: si su nombre necesita «y» (leer_y_calcular), divídela.
  • Nombres con verbo: calcular_iva, mostrar_menu, es_par.
  • Funciones cortas: si ocupa más de una pantalla, probablemente hace demasiado.
  • Documenta con un docstring qué hace, qué recibe y qué devuelve.
  • Define arriba, usa abajo: funciones al inicio y el programa principal al final.

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

© solutions_ · Fundamentos de programación · 22 Función