Lección 9 · Reutilización

Lección 9: Funciones


🎯 Objetivo

Crear funciones con def, usar parámetros, retornar valores y reutilizar código.

📘 Explicación

Una función es un bloque de código con nombre que puedes ejecutar varias veces. Ayuda a organizar y evitar repetir.

Una función puede retornar un valor con return.

🔑 Conceptos clave

  • def: define una función
  • Parámetros: datos de entrada
  • return: valor de salida
  • Reutilización: llamar la función varias veces

🧩 Ejemplos

Ejemplo 1: Función sin parámetros

def saludar():
    print("Hola")

saludar()

Ejemplo 2: Función con parámetros

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

saludar_nombre("Ana")

Ejemplo 3: Función con return

def cuadrado(x):
    return x * x

print(cuadrado(5))

Ejemplo 4: Parámetro por defecto

def descuento(total, porcentaje=10):
    return total * (1 - porcentaje/100)

print(descuento(100))
print(descuento(100, 20))

Ejemplo 5: Validación simple dentro de función

def es_par(n):
    return n % 2 == 0

print(es_par(8))

🧪 Ejercicios propuestos

  1. Crea una función suma(a,b) que retorne la suma.
  2. Crea una función area_rectangulo(base, altura).
  3. Crea una función es_mayor_de_edad(edad) que retorne True/False.
  4. Crea una función promedio(lista) que retorne el promedio.
  5. Crea una función factorial(n) usando for.
  6. Crea una función contar_vocales(texto) que retorne cuántas vocales tiene.
  7. Crea una función maximo(lista) sin usar max().
  8. Crea una función precio_con_iva(total, iva=12) que retorne total con IVA.
  9. Crea una función es_palindromo(texto) que ignore mayúsculas.
  10. Crea una función registrar_producto(nombre, precio) que devuelva un diccionario.
✅ Ver soluciones explicadas (10 ejercicios)

Intenta primero. Luego compara con estas soluciones y lee la explicación.


Ejercicio 1: Crea una función suma(a,b) que retorne la suma.

def suma(a, b):
    return a + b

print(suma(3, 4))

Explicación: return devuelve el resultado.


Ejercicio 2: Crea una función area_rectangulo(base, altura).

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

print(area_rectangulo(5, 3))

Explicación: Multiplica base*altura.


Ejercicio 3: Crea una función es_mayor_de_edad(edad) que retorne True/False.

def es_mayor_de_edad(edad):
    return edad >= 18

print(es_mayor_de_edad(20))

Explicación: Comparación booleana.


Ejercicio 4: Crea una función promedio(lista) que retorne el promedio.

def promedio(nums):
    return sum(nums) / len(nums)

print(promedio([8, 7, 10]))

Explicación: sum/len.


Ejercicio 5: Crea una función factorial(n) usando for.

def factorial(n):
    f = 1
    for i in range(1, n+1):
        f *= i
    return f

print(factorial(5))

Explicación: Multiplicación acumulada.


Ejercicio 6: Crea una función contar_vocales(texto) que retorne cuántas vocales tiene.

def contar_vocales(texto):
    vocales = "aeiouAEIOU"
    c = 0
    for ch in texto:
        if ch in vocales:
            c += 1
    return c

print(contar_vocales("Python"))

Explicación: Recorre caracteres.


Ejercicio 7: Crea una función maximo(lista) sin usar max().

def maximo(nums):
    m = nums[0]
    for n in nums:
        if n > m:
            m = n
    return m

print(maximo([3, 10, 7]))

Explicación: Comparación.


Ejercicio 8: Crea una función precio_con_iva(total, iva=12) que retorne total con IVA.

def precio_con_iva(total, iva=12):
    return total * (1 + iva/100)

print(precio_con_iva(100))

Explicación: IVA por defecto 12%.


Ejercicio 9: Crea una función es_palindromo(texto) que ignore mayúsculas.

def es_palindromo(texto):
    t = texto.lower().replace(" ", "")
    return t == t[::-1]

print(es_palindromo("Anita lava la tina"))

Explicación: Normaliza texto.


Ejercicio 10: Crea una función registrar_producto(nombre, precio) que devuelva un diccionario.

def registrar_producto(nombre, precio):
    return {"nombre": nombre, "precio": precio}

print(registrar_producto("Cuaderno", 2.5))

Explicación: Devuelve estructura útil.

⚠️ Errores comunes

  • Definir función y olvidar llamarla (no hace nada hasta que la ejecutas).
  • Olvidar return cuando necesitas un valor (print no retorna).
  • Nombre de función poco claro: usa verbos (calcular_, validar_, obtener_...).