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
- Crea una función suma(a,b) que retorne la suma.
- Crea una función area_rectangulo(base, altura).
- Crea una función es_mayor_de_edad(edad) que retorne True/False.
- Crea una función promedio(lista) que retorne el promedio.
- Crea una función factorial(n) usando for.
- Crea una función contar_vocales(texto) que retorne cuántas vocales tiene.
- Crea una función maximo(lista) sin usar max().
- Crea una función precio_con_iva(total, iva=12) que retorne total con IVA.
- Crea una función es_palindromo(texto) que ignore mayúsculas.
- 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_...).