Funciones en Python: parámetros, return y 20 ejercicios resueltos

Aprendé funciones en Python con parámetros, argumentos, return, variables locales y 20 ejercicios resueltos paso a paso.


Las funciones son una de las herramientas más importantes para organizar programas en Python. Nos permiten agrupar instrucciones bajo un nombre, reutilizar código y dividir problemas grandes en partes más pequeñas.

En esta guía vamos a aprender cómo definir funciones con def, utilizar parámetros, devolver resultados con return y resolver ejercicios prácticos para entender cómo aplicarlas correctamente.

Idea clave: una función encapsula una tarea concreta. En lugar de repetir el mismo código varias veces, podemos escribirlo una sola vez y llamarlo cada vez que lo necesitemos.

¿Por qué usar funciones?

A medida que un programa crece, escribir todo el código seguido se vuelve difícil de leer, mantener y corregir. Las funciones ayudan a dividir el programa en pequeñas responsabilidades.

Entre sus principales ventajas encontramos:

  • evitar código repetido;
  • separar responsabilidades;
  • facilitar la lectura del programa;
  • hacer más simple el mantenimiento;
  • reutilizar lógica en distintas partes;
  • probar pequeñas partes del programa de forma independiente.

Cómo definir una función con def

Una función se define utilizando la palabra reservada def.

def saludar():
    print("Hola desde una funcion")

Definirla no significa ejecutarla. Para hacerlo debemos llamarla:

saludar()

Funciones con parámetros

Los parámetros permiten enviar información a una función.

def saludar(nombre):
    print("Hola", nombre)

saludar("Ana")
saludar("Luis")

En este caso nombre es el parámetro de la función.

Parámetros y argumentos

Aunque muchas veces se utilizan como sinónimos, existe una diferencia conceptual:

  • parámetro: nombre que aparece en la definición de la función;
  • argumento: valor concreto que enviamos al llamar a la función.
def saludar(nombre):
    print("Hola", nombre)

saludar("Maria")

nombre es el parámetro y "Maria" es el argumento.

Devolver valores con return

Una función puede devolver un resultado utilizando return.

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

resultado = sumar(10, 5)

print(resultado)

Esto permite utilizar el resultado fuera de la función.

Diferencia entre print() y return

Esta diferencia es fundamental.

def sumar_con_print(a, b):
    print(a + b)

Esta función muestra el resultado en pantalla, pero no lo devuelve.

En cambio:

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

nos permite hacer:

resultado = sumar(10, 5)
doble = resultado * 2

print(doble)

print() muestra información. return entrega un valor al código que llamó a la función.

Funciones sin parámetros

def mostrar_menu():
    print("1. Agregar")
    print("2. Eliminar")
    print("3. Salir")

mostrar_menu()

Funciones con varios parámetros

def calcular_total(precio, cantidad):
    return precio * cantidad

total = calcular_total(1500, 3)

print(total)

Parámetros con valores por defecto

Podemos asignar un valor que se utilizará cuando el argumento no sea enviado.

def saludar(nombre, mensaje="Hola"):
    print(mensaje, nombre)

saludar("Ana")
saludar("Luis", "Bienvenido")

Variables locales

Las variables creadas dentro de una función normalmente pertenecen a esa función.

def calcular():
    resultado = 10 + 5
    print(resultado)

calcular()

resultado es una variable local.

Alcance de las variables

Una variable definida fuera de una función pertenece a un ámbito distinto.

mensaje = "Hola"

def mostrar():
    texto = "Python"
    print(mensaje)
    print(texto)

mostrar()

Al comenzar conviene que las funciones reciban los datos mediante parámetros y devuelvan resultados, evitando depender innecesariamente de variables globales.

Devolver más de un valor

Python permite devolver varios valores.

def operaciones(a, b):
    suma = a + b
    resta = a - b

    return suma, resta

resultado_suma, resultado_resta = operaciones(10, 4)

print(resultado_suma)
print(resultado_resta)

Funciones que reciben listas

def mostrar_numeros(numeros):
    for numero in numeros:
        print(numero)

lista = [10, 20, 30]

mostrar_numeros(lista)

Funciones que devuelven listas

def obtener_pares(numeros):
    pares = []

    for numero in numeros:
        if numero % 2 == 0:
            pares.append(numero)

    return pares

resultado = obtener_pares([1, 2, 3, 4, 5, 6])

print(resultado)

Índice de ejercicios

  1. Función que saluda
  2. Sumar dos números
  3. Mayor de dos números
  4. Par o impar
  5. Calcular promedio
  6. Factorial
  7. Número primo
  8. Contar vocales
  9. Mayor valor de una lista
  10. Promedio de una lista
  11. Filtrar números pares
  12. Calcular área
  13. Convertir temperatura
  14. Validar contraseña
  15. Devolver mayor y menor
  16. Parámetro por defecto
  17. Generar una lista
  18. Buscar un elemento
  19. Funciones reutilizadas entre sí
  20. Mini programa modular

1. Función que saluda

def saludar(nombre):
    print("Hola", nombre)

saludar("Club Programador")

2. Sumar dos números

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

resultado = sumar(8, 5)

print(resultado)

3. Mayor de dos números

def mayor(a, b):
    if a > b:
        return a
    else:
        return b

print(mayor(10, 7))

4. Par o impar

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

numero = int(input("Ingrese un numero: "))

if es_par(numero):
    print("Es par")
else:
    print("Es impar")

5. Calcular promedio

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

resultado = promedio(8, 7, 9)

print(resultado)

6. Factorial

def factorial(numero):
    resultado = 1

    for i in range(1, numero + 1):
        resultado *= i

    return resultado

print(factorial(5))

7. Número primo

def es_primo(numero):
    if numero < 2:
        return False

    divisor = 2

    while divisor * divisor <= numero:
        if numero % divisor == 0:
            return False

        divisor += 1

    return True

numero = int(input("Ingrese un numero: "))

if es_primo(numero):
    print("Es primo")
else:
    print("No es primo")

8. Contar vocales

def contar_vocales(texto):
    cantidad = 0

    for caracter in texto.lower():
        if caracter in "aeiou":
            cantidad += 1

    return cantidad

texto = input("Ingrese un texto: ")

print("Vocales:", contar_vocales(texto))

9. Mayor valor de una lista

def obtener_mayor(numeros):
    mayor = numeros[0]

    for numero in numeros:
        if numero > mayor:
            mayor = numero

    return mayor

numeros = [8, 3, 15, 4, 11]

print(obtener_mayor(numeros))

10. Promedio de una lista

def calcular_promedio(numeros):
    suma = 0

    for numero in numeros:
        suma += numero

    return suma / len(numeros)

notas = [7, 8, 9, 6]

print(calcular_promedio(notas))

11. Filtrar números pares

def obtener_pares(numeros):
    pares = []

    for numero in numeros:
        if numero % 2 == 0:
            pares.append(numero)

    return pares

numeros = [1, 2, 3, 4, 5, 6]

print(obtener_pares(numeros))

12. Calcular área

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

base = float(input("Ingrese la base: "))
altura = float(input("Ingrese la altura: "))

print("Area:", calcular_area(base, altura))

13. Convertir temperatura

def celsius_a_fahrenheit(celsius):
    return celsius * 9 / 5 + 32

temperatura = float(input("Ingrese grados Celsius: "))

print("Fahrenheit:", celsius_a_fahrenheit(temperatura))

14. Validar contraseña

def validar_clave(clave):
    return clave == "python123"

clave = input("Ingrese la clave: ")

if validar_clave(clave):
    print("Acceso permitido")
else:
    print("Clave incorrecta")

15. Devolver mayor y menor

def mayor_y_menor(numeros):
    mayor = numeros[0]
    menor = numeros[0]

    for numero in numeros:
        if numero > mayor:
            mayor = numero

        if numero < menor:
            menor = numero

    return mayor, menor

numeros = [8, 3, 15, 2, 11]

mayor, menor = mayor_y_menor(numeros)

print("Mayor:", mayor)
print("Menor:", menor)

16. Parámetro por defecto

def saludar(nombre, saludo="Hola"):
    print(saludo, nombre)

saludar("Ana")
saludar("Luis", "Bienvenido")

17. Generar una lista

def generar_lista(limite):
    numeros = []

    for numero in range(1, limite + 1):
        numeros.append(numero)

    return numeros

print(generar_lista(5))

18. Buscar un elemento

def buscar(lista, buscado):
    for elemento in lista:
        if elemento == buscado:
            return True

    return False

numeros = [10, 20, 30, 40]

if buscar(numeros, 30):
    print("Encontrado")
else:
    print("No encontrado")

19. Funciones reutilizadas entre sí

Una función puede llamar a otra función.

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

def contar_pares(numeros):
    cantidad = 0

    for numero in numeros:
        if es_par(numero):
            cantidad += 1

    return cantidad

numeros = [1, 2, 4, 7, 10]

print("Cantidad de pares:", contar_pares(numeros))

20. Mini programa modular

En este último ejemplo dividimos un pequeño programa en distintas funciones.

def mostrar_menu():
    print("")
    print("=== MENU ===")
    print("1. Sumar")
    print("2. Par o impar")
    print("3. Salir")

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

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

opcion = 0

while opcion != 3:
    mostrar_menu()
    opcion = int(input("Seleccione una opcion: "))

    if opcion == 1:
        a = float(input("Primer numero: "))
        b = float(input("Segundo numero: "))

        print("Resultado:", sumar(a, b))

    elif opcion == 2:
        numero = int(input("Ingrese un numero: "))

        if es_par(numero):
            print("Es par")
        else:
            print("Es impar")

    elif opcion == 3:
        print("Programa finalizado")

    else:
        print("Opcion invalida")

Funciones y responsabilidad única

Una buena práctica es intentar que cada función tenga una responsabilidad clara.

Por ejemplo, en lugar de crear una función enorme que muestre un menú, pida datos, calcule resultados y guarde información, podemos dividir esas tareas en varias funciones pequeñas.

Esto hace que el código sea más fácil de comprender y modificar.

Errores comunes al trabajar con funciones

  • Definir una función y olvidar llamarla.
  • Confundir print() con return.
  • Enviar una cantidad incorrecta de argumentos.
  • Intentar usar fuera de la función una variable local.
  • Olvidar devolver un resultado cuando se necesita.
  • Crear funciones demasiado grandes que hacen muchas tareas diferentes.

Cómo practicar funciones

Podés tomar ejercicios anteriores y reorganizarlos utilizando funciones. Por ejemplo:

  • convertir la búsqueda de un valor en una función;
  • crear funciones para calcular promedios;
  • separar las opciones de un menú;
  • crear funciones para validar datos;
  • hacer que una función reciba una lista y devuelva otra;
  • combinar varias funciones en un mismo programa.

Próximo paso: búsqueda y ordenamiento en Python

Ahora que podemos organizar nuestros algoritmos en funciones, el siguiente paso será estudiar algoritmos clásicos de búsqueda y ordenamiento implementados directamente en Python.

Seguí aprendiendo Python

Para repasar las estructuras que solemos pasar como parámetros, podés volver a Listas en Python.

Ahora que podés separar responsabilidades en funciones, continuá con:

Algoritmos de búsqueda y ordenamiento en Python →

Ver la ruta completa de Python


¿Te sirvió esta guía? ☕

Si este contenido te ayudó a aprender Python, podés apoyar a Club Programador. Cada aporte ayuda a mantener el sitio online y a seguir publicando material gratuito.

🇦🇷 Apoyar desde Argentina

☕ Invitame un café con Mercado Pago

🌎 Apoyar desde otro país

☕ Apoyar con PayPal


Descubre más desde Club Programador

Suscríbete y recibe las últimas entradas en tu correo electrónico.

3 opiniones en “Funciones en Python: parámetros, return y 20 ejercicios resueltos”

Deja un comentario

Descubre más desde Club Programador

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo