SIN · Sintaxis 5 · Funciones

23.Parámetros y retorno

Los parámetros son los datos que recibe una función y el retorno es el resultado que devuelve a quien la llamó.

¿Qué es?

Los parámetros son los datos que recibe una función para hacer su trabajo, y el retorno es el resultado que devuelve.

Una función es como una máquina expendedora: le das dinero y un código (parámetros) y te devuelve un producto (retorno). La máquina no sabe para qué lo quieres; solo recibe, procesa y entrega.

Término Qué es Ejemplo
Parámetro La variable en la definición def area(base, altura):
Argumento El valor que se pasa al llamar area(4, 3)
Retorno El valor que devuelve con return return base * altura

Sintaxis (pseudocódigo / Python)

PSeInt

Funcion prom <- Promedio(a, b, c)
	prom <- (a + b + c) / 3
FinFuncion

Funcion Duplicar(n Por Referencia)
	n <- n * 2
FinFuncion

Algoritmo Principal
	Definir x Como Entero
	Escribir "Promedio: ", Promedio(8, 9, 10)
	x <- 5
	Duplicar(x)
	Escribir "x ahora vale ", x
FinAlgoritmo

En PSeInt los parámetros se pasan por valor (copia) salvo que se indique Por Referencia, en cuyo caso la función puede modificar la variable original.

Python

def promedio(a, b, c):
    return (a + b + c) / 3

def precio_final(precio, descuento=0, iva=0.16):
    """Valores por defecto: si no se indica, descuento 0 e IVA 16 %."""
    return precio * (1 - descuento) * (1 + iva)

def min_max(numeros):
    """Devuelve dos valores a la vez (como una tupla)."""
    return min(numeros), max(numeros)

print("Promedio:", promedio(8, 9, 10))
print(round(precio_final(100), 2))                  # 116.0
print(round(precio_final(100, descuento=0.10), 2))  # 104.4
menor, mayor = min_max([7, 3, 9, 1])
print("Menor:", menor, "Mayor:", mayor)
Recurso de Python Ejemplo
Valor por defecto def f(iva=0.16):
Argumento con nombre f(100, descuento=0.1)
Varios retornos return a, b → x, y = f()

Ejemplo guiado

Problema: una función que diga si un año es bisiesto, y usarla para contar los bisiestos entre 2000 y 2030.

Regla: es bisiesto si es divisible entre 4, excepto los divisibles entre 100, salvo que también lo sean entre 400.

def es_bisiesto(anio):
    """Devuelve True si el año es bisiesto."""
    return anio % 4 == 0 and (anio % 100 != 0 or anio % 400 == 0)

bisiestos = []
for anio in range(2000, 2031):
    if es_bisiesto(anio):
        bisiestos.append(anio)

print("Bisiestos:", bisiestos)
print("Total:", len(bisiestos))
print("¿1900 es bisiesto?", es_bisiesto(1900))

Salida esperada:

Bisiestos: [2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028]
Total: 8
¿1900 es bisiesto? False

La función no imprime: devuelve True o False, y quien la llama decide qué hacer con el resultado.

Errores comunes

# ✗ Incorrecto
def doble(n):
    print(n * 2)   # imprime, pero no devuelve

resultado = doble(4) + 1
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
# ✗ Incorrecto
def area(base, altura):
    return base * altura

area(5)
TypeError: area() missing 1 required positional argument: 'altura'

Buenas prácticas

  • Devuelve, no imprimas: las funciones que calculan deben usar return; las de mostrar, print.
  • Pocos parámetros (tres o cuatro como máximo); si son muchos, agrúpalos.
  • Valores por defecto para lo opcional.
  • Argumentos con nombre cuando hay varios números seguidos: precio_final(100, descuento=0.1).
  • No uses listas o diccionarios como valor por defecto (def f(x=[])): se comparten entre llamadas; usa None.

Material descargable

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

Referencias

Antes conviene ver…

© solutions_ · Fundamentos de programación · 23 Parámetros y retorno