Ir al contenido principal

Funciones en Python: def, return y parámetros — Guía Completa

🐍 Python — Funciones

Funciones en Python: def, return y Parámetros — Guía Completa con Ejercicios

Aprende a crear funciones en Python desde cero. def, return, parámetros por defecto, *args, **kwargs, funciones lambda y recursividad con ejemplos resueltos en español.

⏱ 15 min de lectura 🎯 Todos los niveles 💻 Código ejecutable ✅ Ejercicios resueltos

1¿Qué es una función y para qué sirve?

Una función es un bloque de código con nombre que realiza una tarea específica y puede reutilizarse cuantas veces sea necesario. En lugar de repetir el mismo código, lo defines una vez y lo llamas cuando lo necesites.

💡 Ventajas de usar funciones
  • Reutilización: escribe una vez, usa muchas veces
  • Organización: código más limpio y fácil de leer
  • Mantenimiento: corriges el error en un solo lugar
  • Modularidad: divide problemas grandes en pequeños

2Definir y llamar funciones: def

La palabra clave def define una función. La indentación (4 espacios) delimita el cuerpo de la función.

primera_funcion.py
# Estructura básica de una función
def nombre_funcion(parametro1, parametro2):
    """Docstring: descripción de la función"""
    # Cuerpo de la función
    resultado = parametro1 + parametro2
    return resultado

# ─── Ejemplos reales ───────────────────────────

def saludar():
    """Función sin parámetros ni retorno"""
    print("¡Hola desde una función!")

def sumar(a, b):
    """Función con parámetros y retorno"""
    return a + b

def presentar(nombre, edad):
    """Función con varios parámetros"""
    print(f"Me llamo {nombre} y tengo {edad} años")

# Llamar (invocar) las funciones
saludar()
print(sumar(10, 5))
presentar("Ana", 22)
▶ Salida
¡Hola desde una función!
15
Me llamo Ana y tengo 22 años

3Parámetros y valores de retorno

Una función puede retornar uno o varios valores con la instrucción return. También puede retornar distintos tipos de datos.

return_valores.py
# Retornar un solo valor
def area_circulo(radio):
    import math
    return math.pi * radio ** 2

# Retornar múltiples valores
def min_max(lista):
    return min(lista), max(lista)

# Retornar un diccionario
def estadisticas(numeros):
    return {
        "total"  : len(numeros),
        "suma"   : sum(numeros),
        "min"    : min(numeros),
        "max"    : max(numeros),
        "promedio": sum(numeros) / len(numeros)
    }

# Usar las funciones
print(f"Área: {area_circulo(5):.2f}")

minimo, maximo = min_max([3, 1, 7, 4, 9])
print(f"Mín: {minimo}, Máx: {maximo}")

stats = estadisticas([10, 20, 30, 40, 50])
print(f"Promedio: {stats['promedio']}")
▶ Salida
Área: 78.54
Mín: 1, Máx: 9
Promedio: 30.0

4Parámetros con valores por defecto

Puedes asignar un valor por defecto a los parámetros. Si el usuario no pasa ese argumento al llamar la función, se usará el valor por defecto.

parametros_default.py
def crear_perfil(nombre, edad, pais="Colombia", activo=True):
    print(f"Nombre: {nombre}")
    print(f"Edad:   {edad}")
    print(f"País:   {pais}")
    print(f"Activo: {activo}\n")

# Usando los valores por defecto
crear_perfil("Ana", 25)

# Sobreescribiendo valores por defecto
crear_perfil("Luis", 30, "México")

# Argumentos por nombre (keyword arguments)
crear_perfil(nombre="María", edad=28, activo=False, pais="Argentina")
▶ Salida
Nombre: Ana
Edad:   25
País:   Colombia
Activo: True

Nombre: Luis
Edad:   30
País:   México
Activo: True

Nombre: María
Edad:   28
País:   Argentina
Activo: False

5*args y **kwargs

Cuando no sabes cuántos argumentos recibirá una función, puedes usar *args (argumentos posicionales) y **kwargs (argumentos por nombre).

args_kwargs.py
# *args: recibe cualquier cantidad de argumentos
def sumar_todo(*numeros):
    total = sum(numeros)
    print(f"Suma de {numeros} = {total}")

sumar_todo(1, 2)
sumar_todo(10, 20, 30, 40)
sumar_todo(5)

# **kwargs: recibe argumentos con nombre
def mostrar_info(**datos):
    print("=== Información ===")
    for clave, valor in datos.items():
        print(f"  {clave}: {valor}")

mostrar_info(nombre="Pedro", edad=29, profesion="Ingeniero")
▶ Salida
Suma de (1, 2) = 3
Suma de (10, 20, 30, 40) = 100
Suma de (5,) = 5
=== Información ===
  nombre: Pedro
  edad: 29
  profesion: Ingeniero

6Funciones lambda

Las funciones lambda son funciones anónimas de una sola línea. Son útiles para operaciones simples y se usan mucho con sorted(), map() y filter().

funciones_lambda.py
# Lambda básico
cuadrado = lambda x: x ** 2
print(cuadrado(5))   # 25

suma = lambda a, b: a + b
print(suma(3, 7))    # 10

# Lambda con sorted() — ordenar lista de dicts
estudiantes = [
    {"nombre": "Ana",   "nota": 4.5},
    {"nombre": "Luis",  "nota": 3.2},
    {"nombre": "María", "nota": 4.8},
]
por_nota = sorted(estudiantes, key=lambda e: e["nota"], reverse=True)
for e in por_nota:
    print(f"{e['nombre']:8} → {e['nota']}")

# Lambda con filter() — filtrar números pares
numeros = [1, 2, 3, 4, 5, 6, 7, 8]
pares = list(filter(lambda n: n % 2 == 0, numeros))
print("Pares:", pares)
▶ Salida
25
10
María    → 4.8
Ana      → 4.5
Luis     → 3.2
Pares: [2, 4, 6, 8]

7Funciones recursivas

Una función recursiva es aquella que se llama a sí misma. Es útil para resolver problemas que se pueden dividir en subproblemas del mismo tipo.

⚠️ Regla de oro de la recursión
Toda función recursiva necesita un caso base que detenga la recursión, de lo contrario el programa se ejecutará infinitamente.
recursion.py
# Factorial: n! = n × (n-1) × ... × 1
def factorial(n):
    if n == 0 or n == 1:  # caso base
        return 1
    return n * factorial(n - 1)  # llamada recursiva

for i in range(8):
    print(f"  {i}! = {factorial(i)}")

# Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13...
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

print("\nSerie Fibonacci:")
serie = [fibonacci(i) for i in range(10)]
print(serie)
▶ Salida
  0! = 1
  1! = 1
  2! = 2
  3! = 6
  4! = 24
  5! = 120
  6! = 720
  7! = 5040

Serie Fibonacci:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

8🏋️ Ejercicios Prácticos Resueltos

📋 Ejercicio: Calculadora con funciones

Crea una calculadora completa usando funciones para cada operación, con un menú interactivo.

calculadora.py
def sumar(a, b):      return a + b
def restar(a, b):     return a - b
def multiplicar(a, b):return a * b
def dividir(a, b):
    if b == 0:
        return "Error: división por cero ❌"
    return a / b

# Diccionario de operaciones (muy pythónico)
operaciones = {
    "1": (sumar,       "Suma"),
    "2": (restar,      "Resta"),
    "3": (multiplicar, "Multiplicación"),
    "4": (dividir,     "División"),
}

def calculadora():
    print("=== CALCULADORA ===")
    for k, (_, nombre) in operaciones.items():
        print(f"  {k}. {nombre}")

    opcion = input("\nElige operación: ")
    if opcion not in operaciones:
        print("Opción inválida"); return

    a = float(input("Primer número: "))
    b = float(input("Segundo número: "))

    func, nombre = operaciones[opcion]
    resultado = func(a, b)
    print(f"\n{nombre}: {a} y {b} = {resultado}")

calculadora()

¿Dominaste las funciones en Python? 🚀

¡Déjanos tus preguntas en los comentarios! Comparte con tus compañeros y suscríbete para más ejercicios resueltos.

PythonFuncionesdef PythonLambdaRecursión
📖 Continúa aprendiendo
  • Programación Orientada a Objetos en Python
  • Manejo de archivos en Python
  • Listas y Diccionarios en Python

Comentarios

Entradas populares de este blog

Cantidad de Alumnos Aprobados y Reprobados Pseint

Cantidad de Alumnos Aprobados y Reprobados Pseint Dada la identificación, Nombre y la nota final de un determinado Numero de estudiantes, realice un algoritmo que permita calcular y dar como salida lo siguiente: La Cantidad de Alumnos Aprobados  La Cantidad de Alumnos Reprobados  El Promedio General de Notas Nota: un estudiante aprueba con una calificación igual o superior a 3.0 en un rango de calificaciones entre 1.0 y 5.0. Algoritmo segundoEjercicio Escribir 'Ingrese la cantidad de estudiantes' Leer rango Dimension Identificacion[rango] Dimension Nombre[rango] Dimension Notas[rango] Para i<-1 Hasta rango Hacer Escribir 'Ingrese Nombre Estudiante N ',i Leer Nombre[i] Escribir 'Ingrese Numero de documento del Estudiante ',Nombre[i] Leer Identificacion[i] Escribir 'Ingrese Nota De ',Nombre[i] Leer Notas[i] promedio <- promedio+Notas[i] Si Notas[i]>=3 Entonces Aprob...

Resolver ecuación de segundo grado en JAVA

Pedir los coeficientes de una ecuación se 2º grado, y muestre sus soluciones reales. Si no existen, debe indicarlo. Una ecuación de segundo grado es toda expresión que cumpla la siguiente forma: ax² + bx +c = 0 con a ≠ 0. Para poder resolver el ejercicio debemos identificar las entradas , procesos y salidas. Entradas:{ a,b,c } Procesos: Para resolver una ecuación de segundo grado debemos aplicar la siguiente formula si a es negativo debemos realizar una proceso adicional que es multiplicar por -1 Salidas:{ x1, x2 } tendremos 2 respuestas para x. Desarrollo El problema nos dice que debemos pedir los coeficientes de la ecuación a,b y c.  Para esto debemos utilizar  la siguiente clase. import java.util.Scanner; // esta clase nos permite obtener datos  por teclado o archivos. Para usarla debemos crear un objeto. Scanner teclado = new Scanner(System.in); Ahora debemos declarar  las variables que vamos a usar ...

Conversor de sistema numéricos Pseint

Conversor de decimal  a sistemas numéricos Pseint Este ejercicio permite convertir del sistema numérico decimal a cual quier sistema numérico solo se debe ingresar el numero a convertir y la base del sistema al cual queremos convertir el numero ingresado. Convertir números decimales  a Binario. Convertir números decimales  a Octal. Convertir números decimales  a Hexadecimal. Algoritmo Conversor Dimension numeros[15] numeros[10] <- 'A' numeros[11] <- 'B' numeros[12] <- 'C' numeros[13] <- 'D' numeros[14] <- 'E' numeros[15] <- 'F' Escribir 'ingresar numero a convertir' Leer dec Escribir 'ingrese la base del sistema a convertir' Leer base valorF <- '' residuo <- 0 Repetir residuo <- dec MOD base dec <- trunc(dec/base) Si base=16 Entonces Si residuo>9 Entonces comparar <- numeros[residuo] resi <- comparar...

Calcular promedio general Pseint

Calcular promedio general Pseint Realice un programa que permita calcular y dar como salida el promedio general de un grupo de estudiantes , tomando en cuenta que esta compuesta por un determinado numero de estudiantes definidos por el usuario y que se tiene la nota definitiva de cada uno de ellos. Algoritmo Ejercicio2 Escribir 'Ingrese la cantidad de estudiantes' Leer rango Dimension Nombre[rango] Dimension Notas[rango] Para i<-1 Hasta rango Hacer Escribir 'Ingrese Nombre Estudiante N ',i Leer Nombre[i] Escribir 'Ingrese Nota De ',Nombre[i] Leer Notas[i] promedio <- promedio+Notas[i] FinPara PromedioG <- promedio/rango Escribir 'Promedio General: ',PromedioG FinAlgoritmo

Instalación de JDK de Java y Herramientas

Descarga e instalación de JDK de Java Paso 1.  Descarga del jdk Descargar JDK de Java En esta pagina encontraremos la versión mas actualizada del JDK de java  damos clic en la selección de la imagen Java Platform (JDK). Pagina Descarga JDK De Java En esta pagina encontraremos las diferentes opciones de descarga de JDK dependiendo de nuestro sistema operativo, es importante aceptar el acuerdo de licencia sin esto no dejara descargar el JDK. Aceptar acuerdo de licencia Una vez aceptado el acuerdo de licencia seleccionaremos la opción de descarga según nuestro sistema operativo. Selección opción descarga  Paso 2.  Instalación del JDK Una vez descargado el instalador del JDK, damos doble clic y dejamos los valores por defecto del instalador.  Esperamos a que la instalación termine Paso 3.  Instalación del JRE En la instalación del jdk nos instalara también el JRE dejaremos la ruta por de...

Introducción a los Conjuntos - Conceptos, Ejemplos y Aplicaciones

Introducción a los Conjuntos El concepto de conjunto es fundamental en matemáticas y se refiere a una colección de objetos bien definidos. En este artículo, exploraremos la definición de conjunto, su historia, propiedades y operaciones básicas, complementados con ejemplos prácticos y aplicaciones. ¿Qué es un Conjunto? Un conjunto es una colección de objetos, conocidos como elementos del conjunto. Los conjuntos pueden definirse de dos maneras: Extensión: Enumerando explícitamente todos sus elementos. Ejemplo: A = {1, 2, 3, 4} . Comprensión: Definiendo una propiedad común que todos sus elementos cumplen. Ejemplo: B = {x | x es un número par} . Ejemplos de conjuntos: A = {Laura, Gabriela, Diana} B = {Cuadrado, Rectángulo, Rombo, Trapecio} C = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29} D = {x | x es un estudiante activo de la UN} Conjuntos Determinados por Extensión y Comprensión Cuando u...