Saltar al contenido
CodigoDev

10 Ejercicios resueltos de Funciones y Módulos en Python

Python Básico
lightbulb Introducción al ejercicio

10 ejercicios resueltos de funciones y módulos en Python. Aprende a estructurar programas reutilizables y limpios paso a paso.

menu_book

Aprendizaje teórico

El Poder de la Reutilización

Cuando empiezas a programar, es normal escribir instrucciones una debajo de otra. Pero ¿qué sucede cuando necesitas realizar la misma tarea varias veces? En lugar de copiar el código, puedes crear una función y utilizarla siempre que la necesites.

Una función es un bloque de instrucciones que realiza una tarea concreta. Puede recibir parámetros, trabajar con esos datos y devolver un resultado mediante return. Se define con la palabra def:

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

print(saludar("Ana"))

Los módulos permiten organizar funciones y otras herramientas en archivos que puedes reutilizar. Python también incluye módulos listos para usar, como math para cálculos matemáticos y random para generar valores aleatorios. Para utilizarlos, escribe import seguido del nombre del módulo.

Antes de mirar cada solución, intenta resolver el ejercicio por tu cuenta. Aunque tu respuesta sea diferente, lo importante es comprender cómo funciona.

Ejercicio 1: El saludo formal (Sintaxis básica)

help_outline Problema:

Crea una función llamada saludar_usuario que reciba el nombre de una persona y muestre un mensaje de bienvenida. Llama a la función dos veces con nombres diferentes para comprobar que puedes reutilizarla.

Pista

Define la función con def y coloca el nombre entre paréntesis. Usa una cadena con f para incluirlo en el saludo.

code Solución explicada:
python
def saludar_usuario(nombre):
    print(f"Hola, {nombre}, bienvenido al sistema.")

saludar_usuario("Carlos")
saludar_usuario("Ana")

terminal Resultado esperado:

Hola, Carlos, bienvenido al sistema.
Hola, Ana, bienvenido al sistema.

Ejercicio 2: El cuadrado de un número (Uso de return)

help_outline Problema:

Escribe una función llamada calcular_cuadrado que reciba un número y devuelva su cuadrado. Guarda el resultado en una variable y muéstralo fuera de la función.

Pista

Multiplica el número por sí mismo y utiliza return para devolver el resultado.

code Solución explicada:
python
def calcular_cuadrado(numero):
    return numero * numero

valor = 5
resultado_final = calcular_cuadrado(valor)
print(f"El cuadrado de {valor} es {resultado_final}")

terminal Resultado esperado:

El cuadrado de 5 es 25

Ejercicio 3: Calculadora de Área de Círculo (Uso de Módulos)

help_outline Problema:

Crea una función que calcule el área de un círculo a partir de su radio. Utiliza el módulo math para obtener el valor de π y muestra el resultado con dos decimales.

Pista

Importa math y aplica la fórmula math.pi * radio ** 2.

code Solución explicada:
python
import math

def area_circulo(radio):
    if radio < 0:
        raise ValueError("El radio no puede ser negativo")
    return math.pi * radio ** 2

radio_usuario = 3
print(f"El área de un círculo con radio {radio_usuario} es: {area_circulo(radio_usuario):.2f}")

terminal Resultado esperado:

El área de un círculo con radio 3 es: 28.27

Ejercicio 4: ¿Es mayor de edad? (Retorno Booleano)

help_outline Problema:

Crea una función llamada es_mayor_edad que reciba una edad y devuelva True si la persona tiene 18 años o más, o False si es menor. Utiliza el resultado para mostrar si puede acceder.

Pista

Una comparación como edad >= 18 ya produce un valor verdadero o falso.

code Solución explicada:
python
def es_mayor_edad(edad):
    return edad >= 18

mi_edad = 15
if es_mayor_edad(mi_edad):
    print("Acceso permitido.")
else:
    print("Acceso denegado. Eres menor de edad.")

terminal Resultado esperado:

Acceso denegado. Eres menor de edad.

Ejercicio 5: Conversor de Moneda

help_outline Problema:

Crea una función que convierta una cantidad de dólares a euros utilizando una tasa de cambio recibida como parámetro. Muestra la cantidad convertida con dos decimales. La tasa del ejemplo es ilustrativa, no una cotización actual.

Pista

Multiplica los dólares por la tasa de cambio. Usa :.2f para mostrar dos decimales.

code Solución explicada:
python
def convertir_dolar_a_euro(dolares, tasa_cambio):
    if dolares < 0 or tasa_cambio <= 0:
        raise ValueError("La cantidad y la tasa deben ser válidas")
    return dolares * tasa_cambio

dolares_a_cambiar = 50
tasa_ejemplo = 0.92
total_euros = convertir_dolar_a_euro(dolares_a_cambiar, tasa_ejemplo)
print(f"${dolares_a_cambiar} dólares son €{total_euros:.2f} euros.")

terminal Resultado esperado:

$50 dólares son €46.00 euros.

Ejercicio 6: Promedio de una lista

help_outline Problema:

Escribe una función que reciba una lista de calificaciones y calcule su promedio. Si la lista está vacía, devuelve 0 para evitar una división entre cero.

Pista

sum() suma los elementos y len() indica cuántos hay. Divide la suma entre la cantidad.

code Solución explicada:
python
def calcular_promedio(lista_notas):
    if not lista_notas:
        return 0
    return sum(lista_notas) / len(lista_notas)

mis_notas = [10, 8, 9, 7, 10]
promedio_final = calcular_promedio(mis_notas)
print(f"Tu promedio es: {promedio_final}")

terminal Resultado esperado:

Tu promedio es: 8.8

Ejercicio 7: Generador de Contraseñas (Módulo random)

help_outline Problema:

Crea una función que genere una contraseña sencilla de ocho caracteres combinando letras y números. Utiliza el módulo random para elegir cada carácter. Este ejercicio sirve para practicar módulos y funciones; para contraseñas reales se recomienda secrets.

Pista

Importa random y string. Puedes elegir caracteres con random.choice() y unirlos con ''.join().

code Solución explicada:
python
import random
import string

def generar_contrasena(longitud=8):
    if longitud < 1:
        raise ValueError("La longitud debe ser positiva")
    caracteres = string.ascii_letters + string.digits
    return ''.join(random.choice(caracteres) for _ in range(longitud))

contrasena = generar_contrasena()
print(f"Contraseña generada: {contrasena}")

terminal Resultado esperado:

Se mostrará una contraseña aleatoria de ocho caracteres, por ejemplo: Contraseña generada: a7B2c9D4. La contraseña cambia en cada ejecución. Para generar contraseñas seguras de uso real, reemplaza random.choice por secrets.choice.

Ejercicio 8: Contador de palabras

help_outline Problema:

Crea una función que reciba una oración y devuelva cuántas palabras contiene. Comprueba el resultado con una frase de ejemplo.

Pista

split() separa una cadena en palabras y len() cuenta los elementos obtenidos.

code Solución explicada:
python
def contar_palabras(frase):
    return len(frase.split())

texto = "Aprender Python es muy divertido y útil"
cantidad = contar_palabras(texto)
print(f"La frase tiene {cantidad} palabras.")

terminal Resultado esperado:

La frase tiene 7 palabras.

Ejercicio 9: El número máximo (Lógica interna)

help_outline Problema:

Escribe una función llamada maximo_de_tres que reciba tres números y devuelva el mayor, sin utilizar la función incorporada max(). La solución debe funcionar incluso cuando dos o más números sean iguales.

Pista

Guarda el primer número como mayor provisional y compáralo con los otros dos.

code Solución explicada:
python
def maximo_de_tres(n1, n2, n3):
    mayor = n1
    if n2 > mayor:
        mayor = n2
    if n3 > mayor:
        mayor = n3
    return mayor

mayor = maximo_de_tres(14, 55, 12)
print(f"El número mayor es: {mayor}")

terminal Resultado esperado:

El número mayor es: 55

Ejercicio 10: Calculadora con parámetros por defecto

help_outline Problema:

Crea una función llamada elevar_potencia que reciba una base y un exponente. Cuando no se indique el exponente, la función debe elevar la base al cuadrado. Prueba ambos casos.

Pista

Asigna el valor 2 al parámetro exponente en la definición de la función.

code Solución explicada:
python
def elevar_potencia(base, exponente=2):
    return base ** exponente

print(elevar_potencia(3, 3))
print(elevar_potencia(4))

terminal Resultado esperado:

27
16
help

Preguntas frecuentes

¿Cuál es la diferencia entre print y return?

print() muestra información en pantalla. En cambio, return devuelve un valor desde una función para que puedas guardarlo, utilizarlo en un cálculo o pasarlo a otra función. Una función puede mostrar un mensaje sin devolver un resultado útil, por eso conviene aprender cuándo usar cada uno.

¿Para qué sirven los módulos?

Los módulos ayudan a organizar el código en archivos y permiten aprovechar funciones que ya existen. Por ejemplo, puedes importar math para hacer cálculos o crear tu propio archivo con funciones que utilices en distintos programas.

¿Puede una función llamar a otra función?

Sí. Es muy habitual crear funciones pequeñas que resuelvan tareas concretas y luego combinarlas para construir un programa más completo. Así el código resulta más fácil de entender, probar y mantener.

task_alt

Conclusión

¡Muy bien! Con estos 10 ejercicios resueltos de funciones y módulos en Python ya has practicado cómo crear funciones, recibir parámetros, devolver resultados y aprovechar herramientas incluidas en el lenguaje.

Lo mejor de trabajar con funciones es que no necesitas escribir las mismas instrucciones una y otra vez. Puedes resolver un problema una vez y reutilizar esa solución en otras partes de tu programa. Además, al separar tu código en funciones y módulos, será mucho más sencillo encontrar errores y realizar mejoras.

Si algún ejercicio te resultó difícil, vuelve a intentarlo cambiando los valores de entrada o creando tu propia versión. Practicar con ejemplos pequeños es una excelente forma de ganar confianza. Como siguiente paso, puedes combinar estas funciones con listas y diccionarios para resolver problemas más completos.

rocket_launch

Sigue aprendiendo

¿Quieres profundizar en cómo funcionan los parámetros, los valores de retorno y las funciones? La guía oficial de Python es un buen lugar para continuar.

Descubre cómo importar módulos y aprovechar código que ya está disponible en Python para tus proyectos.

Sigue practicando con explicaciones y ejercicios para afianzar lo que acabas de aprender.

A
Autor del artículo

Alejandro Nes

calendar_today update Actualizado

Desarrollador de Software y creador de contenido educativo

Otros ejercicios prácticos recomendados

Ver todos arrow_forward