Funciones en Python: qué son, cómo crearlas y ejemplos prácticos

Las funciones en Python son bloques de código reutilizables que permiten organizar instrucciones, automatizar tareas y hacer el código más fácil de entender y modificar. También conocidas como subrutinas, procedimientos o subprogramas, estas estructuras son fundamentales para mejorar la lógica de programación y facilitar el mantenimiento del código. A lo largo de esta guía aprenderás cómo crear funciones paso a paso, trabajar con parámetros, utilizar return, comprender la diferencia entre funciones y métodos, además de descubrir ejemplos prácticos aplicados a proyectos reales.

Este contenido fue revisado por instructores especializados en programación y desarrollo web con experiencia impartiendo cursos de Python a estudiantes principiantes y avanzados en Grupo Codesi.

¿Qué son y para qué sirven las funciones?

Cuando un programa comienza a crecer, repetir las mismas instrucciones una y otra vez se vuelve difícil de mantener. Las funciones ayudan justamente a evitar ese problema, ya que permiten reutilizar bloques de código para ejecutar tareas específicas sin volver a escribir todo desde cero.

¿Cómo evitar repetición con bloques reutilizables?

Uno de los usos más prácticos de las funciones es evitar copiar y pegar código. Por ejemplo, si una validación, cálculo o mensaje se repite varias veces, conviene moverlo a una función. Así el programa queda más limpio y cualquier cambio se hace en un solo lugar.

Ejemplo práctico de funciones en Python reutilizables

Diferencia entre función, método, procedimiento y subrutina

Aunque muchas veces se utilizan como sinónimos, existen diferencias entre una función, un método, un procedimiento y una subrutina. Una función normalmente devuelve un valor mediante return, mientras que un método pertenece a una clase u objeto dentro de la programación orientada a objetos. Por otro lado, los procedimientos y subprogramas suelen referirse a bloques de instrucciones reutilizables utilizados para ejecutar tareas específicas dentro de un programa.

¿Cómo crear una función paso a paso?

Crear una función es sencillo, pero usarla bien requiere práctica. La idea no es crear funciones por crear, sino separar partes del código que tienen una tarea clara: saludar, calcular, validar, mostrar información o devolver un resultado.

Sintaxis básica y estructura del código

La sintaxis de una función en Python comienza con la palabra reservada def, seguida del nombre de la función y los parámetros entre paréntesis. Después, se define el bloque de instrucciones que ejecutará la tarea específica.


def saludar():
    print("Hola, bienvenido a Python")

saludar()

En este ejemplo, la función saludar() ejecuta una instrucción simple cada vez que es llamada dentro del programa.

¿Cómo trabajar con parámetros y entrada de datos?

Los parámetros permiten enviar información hacia una función para que pueda trabajar con distintos valores de entrada. Gracias a esto, es posible crear bloques dinámicos capaces de reutilizarse en diferentes escenarios sin repetir código.


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

saludar_usuario("Grupo Codesi")

Aquí, el parámetro nombre recibe un valor externo y lo utiliza para personalizar el mensaje mostrado en pantalla.

¿Cómo llamar y reutilizar una función?

Una función se ejecuta al escribir su nombre seguido de paréntesis. Este proceso sirve para reutilizar instrucciones previamente definidas sin necesidad de volver a escribir el mismo código, algo fundamental en proyectos grandes o tareas repetitivas.


def mostrar_menu():
    print("1. Iniciar sesión")
    print("2. Registrarse")

mostrar_menu()
mostrar_menu()

En este caso, la función reutiliza el mismo bloque de instrucciones cada vez que es invocada.

¿Cómo usar return en Python?

La instrucción return se utiliza para devolver un resultado desde una función hacia otra parte del programa. Esto hace posible trabajar con operaciones más avanzadas, almacenar resultados y construir procesos mucho más eficientes.

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

resultado = sumar(5, 3)

print(resultado)

En este ejemplo, la función devuelve la suma de dos valores y el resultado se almacena dentro de una variable reutilizable.

Un error común al empezar es pensar que print() y return hacen lo mismo. print() solo muestra información en pantalla; return devuelve un valor para usarlo después en otra parte del programa.

Tipos de funciones y métodos más utilizados

No todas las funciones se escriben desde cero. Algunas ya vienen incluidas en el lenguaje, otras las crea el programador según lo que necesita resolver, y algunas se usan para tareas rápidas o repetitivas. Conocer estos tipos ayuda a elegir mejor la herramienta adecuada.

Tipo de función Uso principal Ejemplo común
Funciones integradas Ejecutar tareas básicas incluidas en el lenguaje print(), len(), type()
Funciones definidas por el usuario Crear bloques personalizados para resolver necesidades específicas calcular_iva()
Funciones lambda Realizar operaciones rápidas en una sola línea lambda a, b: a + b
Funciones recursivas Resolver procesos repetitivos donde una función se llama a sí misma contador(numero)
Métodos Trabajar con objetos, clases y datos internos texto.upper()

Recomendación profesional: Al desarrollar proyectos grandes, conviene dividir la lógica en funciones pequeñas y reutilizables para facilitar las pruebas, el mantenimiento y la escalabilidad del sistema.

Funciones integradas más utilizadas

Muchas tareas comunes ya vienen resueltas dentro del lenguaje. Por ejemplo, mostrar texto en pantalla, contar caracteres o identificar el tipo de un dato son acciones que pueden hacerse usando funciones integradas.


nombre = "Python"

print(nombre)
print(len(nombre))
print(type(nombre))

En este ejemplo, print(), len() y type() son funciones integradas que facilitan tareas frecuentes dentro del desarrollo de software.

Bloques personalizados definidos por el usuario

Además de las funciones integradas, puedes crear tus propias funciones para resolver tareas específicas de tu proyecto. Por ejemplo: calcular un impuesto, validar un dato, generar un reporte o preparar información antes de mostrarla al usuario.


def calcular_iva(precio):
    impuesto = precio * 0.16
    return impuesto

print(calcular_iva(1500))

Aquí, la función personalizada calcula automáticamente el IVA de un producto utilizando una operación reutilizable dentro del programa.

Funciones lambda o anónimas

Las funciones lambda son funciones pequeñas y rápidas que se utilizan para ejecutar operaciones simples en una sola línea de código. Son muy útiles cuando se necesita trabajar con listas, filtros o procesos cortos sin definir una función completa.


suma = lambda a, b: a + b

print(suma(4, 6))

En este caso, la función anónima recibe dos valores y devuelve su suma de forma compacta y eficiente.

Funciones recursivas

Las funciones recursivas son aquellas que se llaman a sí mismas para resolver problemas repetitivos o procesos divididos en pequeñas etapas. Este enfoque suele utilizarse en algoritmos matemáticos, estructuras de datos y automatización avanzada.


def contador(numero):
    if numero > 0:
        print(numero)
        contador(numero - 1)

contador(5)

Este ejemplo ejecuta una llamada recursiva que disminuye el valor hasta llegar a cero, mostrando cómo una función puede reutilizarse internamente para resolver una tarea paso a paso.

Parámetros, argumentos y valores de retorno

Los parámetros y argumentos sirven para enviar datos a una función. Sin ellos, una función haría siempre lo mismo; con ellos, puede trabajar con nombres, precios, edades, cantidades o cualquier valor que cambie durante la ejecución del programa.

Diferencia entre parámetros y argumentos +

Aunque suelen confundirse, los parámetros y argumentos cumplen funciones distintas dentro de una estructura reutilizable. Los parámetros actúan como variables temporales definidas dentro de la función, mientras que los argumentos representan los valores reales enviados al momento de ejecutarla.
Concepto Descripción Ejemplo
Parámetro Variable definida en la función nombre
Argumento Valor enviado al ejecutar la función "Curso de Python"

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

saludar("Curso de Python")
En este ejemplo, nombre es el parámetro y "Curso de Python" es el argumento enviado a la función.
Uno de los errores más comunes al empezar es confundir el parámetro con el valor que se envía a la función. Aunque parecen lo mismo, cumplen roles diferentes dentro del programa.

Parámetros por posición y por nombre +

Esta tecnología simplifica enviar argumentos utilizando el orden definido en la función o indicando explícitamente el nombre de cada parámetro. Ambas opciones ayudan a mejorar la flexibilidad y claridad del código.
  • Por posición: los valores se asignan según el orden.
  • Por nombre: cada valor se relaciona directamente con un parámetro específico.

def registrar_usuario(nombre, edad):
    print(nombre, edad)

registrar_usuario("Ana", 25)

registrar_usuario(edad=25, nombre="Ana")
El segundo ejemplo revisa la lectura del código y evita errores al trabajar con múltiples valores.

Parámetros con valores predeterminados +

Los parámetros predeterminados permiten asignar un valor automático cuando el usuario no envía información al ejecutar la función. Esta práctica ayuda a construir funciones más flexibles y fáciles de reutilizar.

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

saludar() 
saludar("Cursos de Programación") 
En este caso, la función utiliza el valor "invitado" si no se proporciona un argumento externo.

Argumentos variables (*args y **kwargs) +

A veces no sabes cuántos datos recibirá una función. Para esos casos existen *args y **kwargs, que permiten aceptar varios valores sin definir cada parámetro uno por uno.
  • *args: recibe múltiples argumentos en forma de tupla.
  • **kwargs: recibe argumentos con clave y valor en forma de diccionario.

def mostrar_numeros(*args):
    print(args)

mostrar_numeros(1, 2, 3, 4)
Este enfoque ayuda a crear funciones dinámicas capaces de adaptarse a diferentes escenarios.

Uso práctico de return en Python +

La instrucción return devuelve resultados desde una función para reutilizarlos posteriormente dentro del programa. Gracias a esto, es posible construir operaciones más complejas y evitar repetir cálculos innecesarios.

def calcular_descuento(precio):
    return precio * 0.90

total = calcular_descuento(1500)

print(total)
En este ejemplo, la función devuelve el precio con descuento y almacena el resultado dentro de una nueva variable reutilizable.

Variables locales, globales y alcance del código

Las variables en Python pueden comportarse de forma diferente según el lugar donde se crean dentro del programa. Comprender el alcance del código y evitar errores, mejorar la organización de las funciones y desarrollar aplicaciones mucho más limpias y fáciles de mantener.

¿Qué es el scope en Python?

Diagrama visual del scope en Python

El scope o alcance determina desde qué partes del programa puede utilizarse una variable. Las variables locales solo funcionan dentro de la función donde fueron creadas, mientras que las globales pueden utilizarse desde distintas secciones del código. Comprender este comportamiento es fundamental al momento de usar Python en proyectos reales y construir programas más organizados.


mensaje = "Hola global"

def saludar():
    texto = "Hola local"
    print(texto)

saludar()
print(mensaje)

En este ejemplo, texto funciona únicamente dentro de la función, mientras que mensaje puede utilizarse desde cualquier parte del programa.

Buenas prácticas para evitar errores

Buenas prácticas para escribir funciones en Python

Una de las mejores prácticas al trabajar con funciones es evitar el uso excesivo de variables globales, ya que pueden generar conflictos y dificultar el mantenimiento del código. Lo más recomendable es utilizar parámetros, funciones reutilizables y estructuras organizadas que faciliten la lectura y reduzcan errores durante el desarrollo.

  • Utilizar variables locales siempre que sea posible.
  • Evitar modificar variables globales innecesariamente.
  • Crear nombres descriptivos para cada variable.
  • Dividir procesos grandes en bloques reutilizables.

Aplicar estas prácticas ayuda a desarrollar programas más escalables y mejora la lógica utilizada al trabajar con proyectos prácticos en Python.

En proyectos profesionales, es recomendable crear funciones pequeñas y específicas para facilitar el mantenimiento y reducir errores durante futuras actualizaciones.

¿Quieres aprender Python con proyectos reales?

En Grupo Codesi aprenderás Python desde cero con ejercicios prácticos, acompañamiento personalizado y proyectos orientados al mundo laboral.

Ejemplos prácticos para automatizar tareas

Las funciones se entienden mejor cuando se usan en ejemplos reales. A continuación verás casos sencillos, como sumar números o validar usuarios, y otros más cercanos a proyectos donde varias funciones trabajan juntas.

¿Cómo crear una función para sumar números?

Este ejemplo también ayuda a comprender el uso de operadores en Python, especialmente cuando una función realiza cálculos matemáticos.


def sumar(a, b): 
	return a + b 
			
resultado = sumar(10, 5) 
print(resultado) 

En este caso, la función recibe dos valores, realiza la suma y devuelve el resultado para reutilizarlo posteriormente dentro del programa.

¿Cómo validar usuarios con funciones reutilizables?

Las funciones también permiten automatizar validaciones frecuentes dentro de aplicaciones web, formularios o sistemas de acceso. Este enfoque evita repetir instrucciones y organiza la lógica del programa.


def validar_usuario(usuario): 
	if usuario == "admin": 
		return "Acceso permitido" 
	else: 
		return "Acceso denegado" 
			
print(validar_usuario("admin")) 

Este tipo de validaciones son muy comunes al desarrollar aplicaciones más complejas o trabajar con APIs en Python que requieren autenticación y control de acceso.

¿Cómo automatizar tareas repetitivas con Python?

Python es ampliamente utilizado para automatizar tareas repetitivas como renombrar archivos, procesar datos o generar reportes automáticamente. Las funciones ayudan a encapsular procesos repetitivos dentro de bloques reutilizables capaces de ejecutarse múltiples veces con distintos datos.


def enviar_correos():
    print("Correo enviado correctamente")

for i in range(3):
    enviar_correos()

En este ejemplo, la función automatiza una tarea que se ejecuta varias veces utilizando un ciclo. Este tipo de lógica suele combinarse con estructuras como el bucle for en Python para optimizar procesos de forma mucho más eficiente.

¿Cómo estructurar lógica avanzada?

A medida que un proyecto crece, resulta importante dividir procesos complejos en pequeñas funciones reutilizables capaces de trabajar juntas. Esta práctica mejora la organización del código, hace más sencillo el mantenimiento y ayuda a desarrollar aplicaciones mucho más escalables.


def calcular_subtotal(precio, cantidad): 
	return precio * cantidad 
			
def calcular_total(subtotal): 
	return subtotal * 1.16 
			
subtotal = calcular_subtotal(250, 3) 
total = calcular_total(subtotal) 
print(total) 

Este enfoque modular se usa mucho en sistemas reales, porque cada función se encarga de una parte del proceso. Así es más fácil revisar errores, cambiar reglas de negocio o ampliar el programa sin romper todo el código.

Errores comunes al estructurar código reutilizable

Al comenzar a trabajar con estas estructuras, es normal cometer algunos errores relacionados con parámetros, variables o retorno de datos. Identificar estos problemas desde el inicio ayuda a escribir código más limpio, evitar fallos inesperados y mejorar la lógica utilizada dentro de cualquier proyecto.

Confundir parámetros con argumentos +

Uno de los errores más frecuentes consiste en confundir los parámetros definidos dentro de la función con los argumentos enviados al ejecutarla. Aunque están relacionados, ambos cumplen funciones diferentes dentro del flujo del programa.

def saludar(nombre): # Parámetro 
	print("Hola", nombre) 
			
saludar("Grupo Codesi") # Argumento 
Comprender esta diferencia vuelve más claro la creación de bloques reutilizables y evita errores al trabajar con múltiples valores de entrada dentro de un programa.

No usar return correctamente +

Otro error común ocurre cuando una función realiza una operación, pero no devuelve el resultado utilizando return. Esto impide reutilizar los datos posteriormente y limita la funcionalidad del código.

def sumar(a, b): 
	a + b 
			
resultado = sumar(5, 3) 
print(resultado) 
En este caso, el resultado será None porque la función nunca devuelve el valor calculado. Lo correcto sería utilizar return a + b para recuperar la operación correctamente.
Como buena práctica profesional, una función que calcula o transforma datos debería devolver un resultado claro. Si solo muestra información con print(), será menos reutilizable dentro de otros procesos.
Este tipo de errores suele aparecer al comenzar a usar Python en proyectos reales o automatizar procesos más complejos.

Variables fuera de alcance +

Las variables locales únicamente funcionan dentro de la función donde fueron creadas. Intentar utilizarlas fuera de su alcance puede provocar errores durante la ejecución del programa.

def mostrar_mensaje(): 
	texto = "Hola" 
	print(texto) 
Aquí se produce un error porque la variable texto solo existe dentro de la función. Comprender el alcance del código ayuda a desarrollar aplicaciones más organizadas y evitar conflictos entre variables.

Abusar de funciones demasiado largas +

Crear funciones con demasiadas responsabilidades dificulta la lectura, aumenta la complejidad y complica el mantenimiento del programa. Lo más recomendable es dividir procesos grandes en pequeñas funciones reutilizables que ejecuten tareas específicas.
  • Separar procesos complejos en varias funciones.
  • Utilizar nombres claros y descriptivos.
  • Evitar mezclar demasiadas tareas dentro del mismo bloque.
  • Reutilizar funciones pequeñas siempre que sea posible.
En desarrollo profesional, una función extensa suele ser una señal de que el proceso puede dividirse en tareas más pequeñas, fáciles de probar, corregir y reutilizar. Aplicar estas prácticas mejora la organización del código y el desarrollo de proyectos prácticos con Python mucho más escalables y fáciles de mantener.

Buenas prácticas para escribir código limpio y reutilizable

Una buena función debe ser fácil de leer y tener una responsabilidad clara. Si una función hace demasiadas cosas al mismo tiempo, tarde o temprano será difícil corregirla, probarla o reutilizarla en otra parte del proyecto.

Crear funciones reutilizables

Una función reutilizable debe estar diseñada para ejecutar una tarea específica sin depender de variables externas innecesarias. Utiliza el mismo bloque de código en distintos escenarios sin repetir instrucciones.


def calcular_descuento(precio, descuento): 
	return precio - descuento 
			
print(calcular_descuento(1500, 200)) 

Mantener funciones simples y legibles

Las funciones pequeñas y claras son más fáciles de entender, depurar y reutilizar. Lo ideal es que cada bloque tenga una única responsabilidad y utilice nombres descriptivos para facilitar la lectura del código.

  • Utilizar nombres fáciles de comprender.
  • Evitar funciones demasiado extensas.
  • Separar procesos complejos en pequeños bloques.
  • Eliminar instrucciones innecesarias.

Este enfoque mejora la lógica de programación y el trabajo colaborativo dentro de proyectos más avanzados.

Documentar funciones correctamente

Documentar funciones ayuda a explicar qué hace cada bloque de código, qué parámetros recibe y qué valor devuelve. Esta práctica es fundamental en proyectos grandes donde varias personas trabajan sobre el mismo programa.


def multiplicar(a, b): 
	""" Multiplica dos números y devuelve el resultado. """ 
	return a * b 
			
print(multiplicar(4, 5)) 

La documentación interna ayuda al mantenimiento del software y ayuda a comprender mejor cómo funcionan los procesos automatizados dentro de una aplicación.

¿Cuándo usar métodos y cuándo usar funciones?

Las funciones suelen utilizarse para ejecutar tareas independientes, mientras que los métodos trabajan directamente con objetos y clases dentro de la programación orientada a objetos. Comprender esta diferencia ayuda a estructurar aplicaciones más organizadas y escalables.


texto = "python" 
print(texto.upper()) 

Herramientas recomendadas para programar y depurar código

Un buen editor no programa por ti, pero sí hace más fácil escribir, probar y corregir código. Para practicar funciones, conviene usar herramientas que muestren errores, sugieran código y permitan ejecutar pruebas rápidamente.

Visual Studio Code

Visual Studio Code es uno de los editores más utilizados para desarrollar aplicaciones en Python gracias a su velocidad, compatibilidad con extensiones y herramientas de depuración integradas. Además, trabajar con funciones, automatización de tareas y proyectos avanzados de manera mucho más organizada.

Antes de comenzar a programar, es recomendable realizar una instalación limpia y correctamente configurada de Visual Studio Code para evitar errores al ejecutar aplicaciones y mejorar el entorno de desarrollo.

  • Autocompletado inteligente de código.
  • Integración con extensiones de Python.
  • Depuración de errores en tiempo real.
  • Compatibilidad con Git y control de versiones.
Interfaz de Visual Studio Code para programar en Python

Interfaz de PyCharm para desarrollar funciones en Python

PyCharm

PyCharm es un entorno de desarrollo especializado en Python que ofrece herramientas avanzadas para trabajar con proyectos profesionales, automatización y programación orientada a objetos. Su sistema de análisis inteligente ayuda a detectar errores rápidamente y mejorar la calidad del código.


def saludar(nombre): 
	return "Hola " + nombre 
			
print(saludar("Python")) 

Este editor es muy utilizado en proyectos grandes donde se requiere una estructura más robusta y herramientas avanzadas de desarrollo.


Jupyter Notebook

Jupyter Notebook es una herramienta ampliamente utilizada en ciencia de datos, análisis de información y aprendizaje automático. Ejecutar bloques de código por separado, facilitando las pruebas rápidas y la visualización de resultados.


numero = 10 
print(numero * 2) 

Gracias a su formato interactivo, Jupyter se ha convertido en una de las herramientas favoritas para experimentar con algoritmosy automatización de procesos.

Jupyter Notebook para practicar código Python

Herramientas para detectar y corregir errores en el código

Las herramientas de depuración permiten identificar problemas dentro del programa antes de que afecten el funcionamiento de una aplicación. Utilizar sistemas de debugging ayuda a encontrar errores de sintaxis, conflictos de variables o fallos en funciones reutilizables.

  • Pylint: analiza errores y buenas prácticas.
  • Debugger de VS Code: ejecuta código paso a paso.
  • PyCharm Debugger: detección de errores complejos.
  • Jupyter: Prueba bloques de código rápidamente.

Aprender a detectar errores es fundamental al momento de usar Python en proyectos reales y desarrollar aplicaciones más estables y eficientes.

¿Cómo se usan las funciones en proyectos reales?

Estas estructuras no solo se utilizan en ejercicios básicos, también forman parte de aplicaciones reales relacionadas con automatización, análisis de datos, desarrollo web y procesamiento de información. Gracias a estos bloques reutilizables, los desarrolladores pueden crear sistemas más organizados, escalables y fáciles de mantener.

Automatización de procesos +

Uno de los usos más comunes de las funciones consiste en automatizar tareas repetitivas como envío de correos, generación de reportes o procesamiento de archivos. Esto ahorra tiempo y reducir errores manuales dentro de un sistema.

def generar_reporte():
    print("Reporte generado correctamente")

for i in range(3):
    generar_reporte()
Este tipo de automatización suele combinarse con estructuras como el bucle for en Python para ejecutar procesos repetitivos de forma mucho más eficiente.

Validación de formularios +

Las funciones también se utilizan para validar datos enviados desde formularios, sistemas de acceso o aplicaciones web. Esto ayuda a verificar información antes de almacenarla o procesarla dentro del programa.

def validar_email(email): 
	return "@" in email 
			
print(validar_email("izavala@grupocodesi.com")) 
Este enfoque es muy utilizado en plataformas web, APIs y sistemas donde se requiere controlar la entrada de datos correctamente.

Procesamiento de datos +

Python es ampliamente utilizado para procesar grandes cantidades de información mediante funciones reutilizables capaces de limpiar, transformar y analizar datos automáticamente.

def convertir_mayusculas(texto): 
	return texto.upper() 
			
print(convertir_mayusculas("python")) 

Desarrollo web +

En el desarrollo web, las funciones permiten organizar procesos relacionados con autenticación, consultas a bases de datos, manejo de usuarios y validación de formularios. Gracias a esta modularidad, las aplicaciones resultan mucho más fáciles de escalar y mantener.

def mostrar_usuario(nombre): 
	return f"Bienvenido {nombre}" 
			
print(mostrar_usuario("Aprende Python con Ejercicios Reales")) 

Ciencia de datos +

Dentro de la ciencia de datos, las funciones ayudan a automatizar cálculos, procesar conjuntos de información y reutilizar operaciones estadísticas o matemáticas de forma eficiente. Trabajar con modelos más complejos sin repetir código innecesario.

def promedio(lista): 
	return sum(lista) / len(lista) 
			
print(promedio([10, 8, 9, 7])) 
Este tipo de estructuras son ampliamente utilizadas en análisis de datos, inteligencia artificial y proyectos relacionados con las aplicaciones reales de Python.

Ejercicios prácticos para mejorar tu lógica de programación

Practicar este enfoque modular es una de las mejores formas de mejorar la lógica de programación y comprender cómo modularizar procesos en proyectos reales. Resolver ejercicios progresivos ayuda a dominar parámetros, estructuras reutilizables y automatización de tareas de manera mucho más práctica.

Ejercicio básico

El siguiente ejercicio consiste en crear una función capaz de sumar dos números y devolver el resultado utilizando return.


def calcular_total_producto(precio, cantidad):
    subtotal = precio * cantidad
    return subtotal

total = calcular_total_producto(250, 3)

print("Total a pagar:", total)
Ejercicio Básico de funciones en Python

Ejecución del código anterior.

Este tipo de práctica ayuda a comprender cómo funcionan los parámetros y los valores de retorno dentro de una función.

Ejercicio intermedio

Este ejercicio también puedes practicarlo condiciones con if en Python, una estructura clave para tomar decisiones dentro del código.


def validar_usuario(nombre, edad, activo):
    if edad >= 18 and activo:
        return f"{nombre} tiene acceso permitido"
    else:
        return f"{nombre} no cumple los requisitos"

resultado = validar_usuario("Carlos", 22, True)

print(resultado)
Ejercicio Intermedio de funciones en Python

Ejecución del código anterior.

Ejercicio Avanzado

En este ejercicio se utilizan varias funciones reutilizables para calcular el subtotal, impuestos y total de una compra. El objetivo es comprender cómo dividir procesos complejos en pequeños bloques organizados.


def calcular_subtotal(productos):
    subtotal = 0

    for producto in productos:
        subtotal += producto["precio"] * producto["cantidad"]

    return subtotal


def aplicar_descuento(subtotal, descuento):
    return subtotal - (subtotal * descuento)


def calcular_impuesto(monto):
    return monto * 0.16


def calcular_total(productos, descuento):
    subtotal = calcular_subtotal(productos)
    subtotal_descuento = aplicar_descuento(subtotal, descuento)
    impuesto = calcular_impuesto(subtotal_descuento)
    total = subtotal_descuento + impuesto

    return total


productos = [
    {"nombre": "Curso básico", "precio": 500, "cantidad": 1},
    {"nombre": "Material extra", "precio": 150, "cantidad": 2}
]

total = calcular_total(productos, 0.10)

print("Total final:", total)
Ejercicio Avanzado de funciones en Python

Ejecución del código anterior.

Aprende Python desde cero y crea proyectos reales

Si quieres seguir avanzando, también puedes explorar algunos de los mejores cursos de Python para continuar practicando con proyectos reales. ¡Asegura tu lugar Aqui!


Preguntas frecuentes sobre funciones en Python

Las funciones son una de las herramientas más utilizadas dentro de Python debido a su capacidad para organizar instrucciones, reutilizar código y automatizar tareas. A continuación, encontrarás respuestas rápidas a algunas de las dudas más comunes relacionadas con su funcionamiento y aplicación práctica.

¿Cómo crear funciones en Python? +

Para crear una función en Python se utiliza la palabra reservada def, seguida del nombre de la función y los parámetros entre paréntesis. Después, se agrega el bloque de instrucciones que ejecutará la tarea definida.

def saludar(): 
	print("Hola Python") 

¿Qué diferencia hay entre funciones y métodos? +

Las funciones son bloques reutilizables independientes, mientras que los métodos pertenecen a objetos o clases dentro de la programación orientada a objetos. Los métodos se ejecutan sobre un objeto específico y suelen modificar o utilizar sus datos internos.

texto = "python" 
print(texto.upper()) 
En este ejemplo, upper() es un método aplicado sobre el objeto texto.

¿Qué hace return en Python? +

La instrucción return devuelve un resultado desde una función para reutilizarlo posteriormente dentro del programa.

def sumar(a, b): 
	return a + b 
		
print(sumar(4, 6)) 

¿Cómo automatizar tareas usando funciones? +

Las funciones permiten encapsular procesos repetitivos dentro de bloques reutilizables capaces de ejecutarse múltiples veces. Esto ayuda a automatizar tareas y reducir la repetición de código.

def enviar_mensaje():
    print("Mensaje enviado")

for i in range(3):
    enviar_mensaje()

¿Qué tipos de funciones existen en Python? +

La tecnología facilita trabajar con distintos tipos de funciones dependiendo de la tarea que se necesite realizar.
  • Funciones integradas: vienen incluidas en Python.
  • Funciones definidas por el usuario: creadas por el desarrollador.
  • Funciones lambda: funciones rápidas y anónimas.
  • Funciones recursivas: funciones que se llaman a sí mismas.

¿Qué son las funciones lambda? +

Las funciones lambda son funciones anónimas escritas en una sola línea de código. Se utilizan principalmente para operaciones rápidas o procesos simples.

suma = lambda a, b: a + b

print(suma(4, 6))
Estas funciones las abordaremos en un nuevo articulo de aprendizaje de Python con ejercicios reales.

¿Cómo reutilizar código usando funciones? +

Las funciones ayudan a reutilizar bloques de instrucciones sin necesidad de repetir el mismo código varias veces dentro del programa. Esto mejora la organización y el mantenimiento del software.

def mostrar_menu(): 
	print("1. Iniciar") 
	print("2. Salir") 
			
mostrar_menu() 
mostrar_menu() 

¿Cuándo usar métodos y cuándo usar funciones? +

Las funciones suelen utilizarse para ejecutar tareas independientes, mientras que los métodos trabajan directamente con objetos y clases. Comprender esta diferencia ayuda a construir aplicaciones más organizadas y escalables.

¿Qué errores son comunes al crear funciones? +

Algunos de los errores más frecuentes incluyen:
  • Confundir parámetros con argumentos.
  • No utilizar return correctamente.
  • Crear funciones demasiado largas.
  • Usar variables fuera de su alcance.
Evitar estos problemas ayuda a desarrollar programas más organizados y fáciles de mantener.

¿Cómo crear una función con parámetros en Python? +

Los parámetros permiten que una función reciba valores externos para trabajar con diferentes datos de entrada y generar resultados dinámicos.

def multiplicar(a, b): 
	return a * b 
			
print(multiplicar(5, 4)) 

Contacto directo con un asesor en formación tecnológica

Llámanos o escríbenos. Habla con uno de nuestros instructores. Podemos escuchare y contarte cual es el mejor curso para ti.

Avenida General Francisco Morazan nùmero 430 interior 2 entrada por calle 77, timbre 2 Alcaldia Venustiano Carranza C.P. 15020 CDMX Horarios de Atención: Lunes a Jueves 7 am a 7 pm - Sabados 7 am a 3 pm - Domingos 8 am a 2 pm

Contacta a Grupo Codesi

¿Tienes alguna duda sobre aprender Python? Escríbenos y te responderemos lo antes posible. ¡Contáctanos sin compromiso!

WhatsApp para informes del curso de Python