Bienvenido a este excelente y completo post donde aprenderás uno de los conceptos más importantes y poderosos de programación en Python.
👨🔬🔮 Las funciones, una vez que aprendas esta habilidad, sencillamente no volverás a ser el mismo. Tu cerebro jamás podrá volver a su tamaño original y habrás consolidado un gran poder que te permitirá doblegar el código a tu antojo y podría cambiar el destino del mundo digital tal y como lo conoces para siempre. Incluso intenta sostenerte en la cordura a medida que me comiences a leer porque el mundo real se volverá demasiado frágil y podrás descender a la locura si aún no estás preparado para estos conceptos tan poderosos.
En un principio pensaras que aún falta mucho por aprender sobre variables, tipos de datos y muchos conceptos más sencillos antes de pasar a funciones en python, es probable que consideres que aún no estás listo, pero creeme, lo estarás al final del post. Así que venga, abre grande los ojos y absorve lo más posible de estos conocimientos.
⚙️ ¿Qué son las funciones?
Por empezar las funciones están por todas partes, seguro habrás escuchado el concepto matemático de funciones pero si solo hablaramos de esta área estaríamos limitando el poder de las funciones. Tu organismo ahora mismo estará realizando distintas funciones en simultaneo, por ejemplo, la digestión o inclúso el latido de tu corazón (es una función que lleva sangre desoxigenada a los pulmones, la oxigena y la reparte por todo tu cuerpo), tus organos son como máquinas biológicas perfectamente diseñadas que están realizando funciones simultanea y continuamente. (por eso si alguna de estas máquinas se detuviera, pues estarias en un problema bastante jodido.)
-Bien, ya tienes problemas que antes no tenías, pero no te preocupes. La naturaleza en su infinita sabiduría seguirá su curso.
Tu dirás y que diablos tiene que ver con programación, pues mucho. Todo tiene que ver con todo y relacionar los conceptos es lo que nos otorga una verdadera inteligencia y capacidad creativa, pongamos nuestro cerebro en movimiento para entender estos conceptos y finalmente llevarlos a la práctica en nuestro cuaderno:
Ámbito | Definición de Función | Ejemplo | Entradas y Salidas |
---|---|---|---|
Matemáticas | Una relación entre dos conjuntos donde cada entrada tiene exactamente una salida. |
f(x) = 2x + 3 |
Entrada: x = 5 Salida: f(5) = 13 |
Programación | Un bloque de código reutilizable que realiza una tarea específica, recibiendo entradas y devolviendo salidas. |
def sumar(a, b): return a + b sumar(4, 6) |
Entradas: a = 4, b = 6 Salida: 10 |
Cuerpo Humano | El rol o propósito específico de un órgano o sistema en el cuerpo humano. | Corazón: Recibe sangre desoxigenada (entrada), la bombea hacia los pulmones para oxigenarla y luego la distribuye por el cuerpo (salida). | Entrada: Sangre desoxigenada Salida: Sangre oxigenada distribuida por el cuerpo |
Vegetales (Fotosíntesis) | Proceso biológico que convierte energía lumínica en energía química almacenada en forma de glucosa. | Proceso: La clorofila captura luz solar y sintetiza glucosa. | Entradas: Luz solar, agua (H₂O), dióxido de carbono (CO₂) Salida: Glucosa (C₆H₁₂O₆) y oxígeno (O₂) |
Ingeniería | El propósito o tarea específica de una máquina o componente dentro de un sistema más grande. | Motor de automóvil: Convierte combustible (entrada) en movimiento (salida). | Entrada: Combustible Salida: Movimiento |
Un conjunto de funciones conformarían un SISTEMA✨. En nuestro caso al programar utilizaremos diferentes tipos de funciones en una aplicación o programa que recibirán diferentes datos de entrada y salida para cambiar su estado.
🐍 Funciones en Python 3
Una función es un conjunto de líneas de código que realizan una tarea específica y pueden tomar Argumentos para diferentes Parámetros que modifiquen su funcionamiento y los datos de salida. Una función nos permite implementar operaciones que son frecuentemente utilizadas en un programa y así reducir la cantidad de código.
Características clave:
- Entrada → Proceso → Salida: Recibe datos, los procesa y devuelve resultados.
- Especialización: Cada función tiene un propósito único.
- Reutilización: Diseñada para resolver problemas de manera eficiente y repetible.
- Consistencia: Misma entrada = misma salida.
- Interconexión: Varias funciones pueden combinarse para formar sistemas más complejos.
Podemos ver a una función como si fuera una “máquina” o una “caja negra” que recibe datos de entrada, los procesa y nos devuelve una salida en base a un “estándar”. Es decir, cada una estará formulada para recibir determinados datos de entrada [Parámetros] (con determinadas características [Argumentos]), realizar determinado proceso y otorgar determinada salida (con determinadas características esperadas).
Por ejemplo, suma() está creada para recibir datos que pueda sumar; si le intentamos ingresar símbolos y letras, es probable que se produzca un error.
Lo mismo nos sucedía con print(); al no colocar las comillas o los paréntesis, no podrá saber si nos referimos a una variable, a un texto o a qué diablos, por lo que obviamente lanzará un error.
Ahora, suma() y print() ambas son funciones, pero suma() deberás crearla tú primero para poder usarla. ¿Por qué? Porque existen diferentes tipos de funciones en Python, y combinar ambas nos ahorra mucho trabajo y líneas de código.

Esta calculadora también requiere otro tipos de funciones que realicen comprobaciones y tareas más avanzadas para funcionar, por ejemplo la función “input()” para permitirle al usuario ingresar un número, “print()” para imprimir el resultado, incluso la función “type()” para comprobar si el dato de entrada es númerico y el usuario no está intentando ingresar otro tipo de dato.
Supongo que entiendes ahora, vamos a combinar poderes; conozcamos los tipos de funciones y cuales serán las más utilizadas para poder combinarlas. 👇
🤔 Tipos de funciones en Python 3
Existen diferentes tipos de funciones en python, primeramente me gustaría explicarte los tipos de funciones y seguidamente veremos su “sintaxis“, y sus “partes” y porque es importante conocerlas bien para poder utilizarlas.
⚙️ Además de ello verás que puedes utilizar muchísimas solo comprendiendo apenas unos comandos que te serviran para “pedirle” al interprete que te explique de que va cada una de ellas.
🧠 Tendrás acceso a un arsenal de funciones para comenzar a prácticar programación y será mejor que las registres y profundices en cada una de ellas en tu cuaderno Jupyter.
En este post, exploraremos dos tipos (los más importantes) en Python:
- 🌟 Funciones Incorporadas (Built-in Functions): Herramientas listas para usar.
- 🛠️ Funciones Definidas por el Usuario: Crea tus propias herramientas personalizadas.
1️⃣ Funciones Incorporadas (Built-in Functions)
Estas son las herramientas predeterminadas que Python trae “de fábrica”. No necesitas instalar nada ni configurar nada extra. Son como los superpoderes básicos del lenguaje. 😎
✨ Función | 🔍 ¿Qué hace? | 💡 Ejemplo |
---|---|---|
print() |
Muestra mensajes o valores en la pantalla. | print("Hola, mundo!") |
type() |
Devuelve el tipo de dato de un objeto. | type(42) # Salida: int |
len() |
Calcula la longitud de una lista, cadena u otro iterable. | len("Python") # Salida: 6 |
sum() |
Suma los elementos de un iterable (como una lista). | sum([1, 2, 3]) # Salida: 6 |
input() |
Permite al usuario ingresar datos desde la consola. | nombre = input("¿Cómo te llamas? ") |
2️⃣ Funciones Definidas por el Usuario
Aquí es donde tú tomas el control. Puedes crear tus propias funciones utilizando la palabra clave def
.
🔄 Esto te permite encapsular lógica específica para reutilizarla en tu programa.
def suma(a, b): return a + b resultado = suma(4, 5) print(resultado) # Salida: 9
✅ Explicación:
def suma(a, b):
: Define una función llamadasuma
que toma dos argumentos (a
yb
).return a + b
: Devuelve la suma de los dos números.suma(4, 5)
: Llama a la función con los valores4
y5
.
🌟 Ventajas de Crear tus Propias Funciones
- 📦 Reutilización: Evita repetir código escribiendo una función una vez y usándola muchas veces.
- 📂 Organización: Divide tu programa en partes más pequeñas y manejables.
- 🎯 Foco en el problema: Encapsula lógica compleja en bloques simples.
⚠️ Errores Comunes al Crear Funciones (Repasemos sintaxis):
❌ Error | 🔍 ¿Qué significa? | ✅ Solución |
---|---|---|
SyntaxError | Falta de paréntesis o comillas. | Asegúrate de cerrar paréntesis y usar comillas correctamente. |
NameError | Usar variables que no existen. | Crea la variable antes de usarla. |
IndentationError | Espacios o tabulaciones incorrectas. | Usa una indentación consistente (generalmente 4 espacios). |
🖋️ Funciones en python – Sintaxis
Las funciones son bloques de código reutilizables que te permiten organizar tu programa en partes más pequeñas y manejables. Para crear una función en Python, sigue estas reglas básicas de sintaxis:
1️⃣ Definición de una función
Para definir una función, utiliza la palabra clave def
, seguida del nombre de la función y paréntesis ()
. Los paréntesis pueden contener parámetros (variables que la función necesita para funcionar). Finaliza la línea con dos puntos :
.
def nombre_de_la_funcion(parametro1, parametro2): # Código de la función
- Nombre de la función: Debe ser descriptivo y seguir las convenciones de Python (minúsculas y palabras separadas por guiones bajos
_
). - Parámetros: Son variables que actúan como “entradas” para la función. Pueden ser opcionales.
2️⃣ Cuerpo de la función
El cuerpo de la función es donde colocas el código que realiza la tarea deseada. Este código debe estar indentado (generalmente 4 espacios).
def saludar(nombre): mensaje = f"Hola, {nombre}!" # Código indentado print(mensaje)
En Python, el indentado no es solo una cuestión de estilo; ¡es parte de la sintaxis! Define qué instrucciones pertenecen a la función. Si no indentas correctamente, obtendrás un error (IndentationError
).
# ❌ Código incorrecto: Sin indentado def suma(a, b): print(a + b) # Error: IndentationError # ✅ Código correcto: Con indentado def suma(a, b): print(a + b) # Correcto: El código está indentado
3️⃣ Uso de return
La palabra clave return
se utiliza para devolver un valor desde la función. Cuando una función llega a una línea con return
, se detiene inmediatamente y devuelve el valor especificado.
def suma(a, b): resultado = a + b return resultado # Devuelve el resultado
- Sin
return
, la función simplemente ejecuta su código pero no devuelve ningún valor explícito. - Si no usas
return
, la función devuelveNone
por defecto.
# Ejemplo sin return def suma(a, b): resultado = a + b print(resultado) # Solo imprime, no devuelve nada resultado = suma(5, 3) print(resultado) # Salida: None # Ejemplo con return def suma(a, b): resultado = a + b return resultado resultado = suma(5, 3) print(resultado) # Salida: 8
4️⃣ Llamada a la función
Una vez definida, puedes llamar a la función utilizando su nombre y pasando los argumentos necesarios entre paréntesis.
saludar("Juan") # Salida: Hola, Juan! suma(5, 3) # Salida: 8
5️⃣ Resumen de la sintaxis básica
Aquí tienes un ejemplo completo que combina todos los elementos:
def calcular_area_rectangulo(base, altura): area = base * altura # Calcula el área return area # Devuelve el resultado # Llamada a la función resultado = calcular_area_rectangulo(10, 5) print(f"El área del rectángulo es: {resultado}")
Salida:
El área del rectángulo es: 50
- Falta de indentado:
def suma(a, b): print(a + b) # IndentationError
Solución: Asegúrate de indentar el cuerpo de la función.
- Olvidar
return
:def suma(a, b): resultado = a + b # Falta return
Solución: Usa
return
para devolver el valor deseado. - Errores de sintaxis:
def suma(a, b) # Falta : return a + b
Solución: Verifica que todas las reglas de sintaxis estén cumplidas.
- Practica escribiendo funciones simples: Comienza con tareas sencillas, como sumar números o concatenar cadenas.
- Usa nombres descriptivos: Esto hace que tu código sea más legible y fácil de entender.
- Respetar la sintaxis: Recuerda que Python es estricto con las reglas de indentación y estructura.
Con estas bases claras, estarás listo para crear funciones poderosas y bien estructuradas en Python. ¡Sigue practicando y verás cómo dominas este concepto clave! 🚀
🔩 Entendiendo Parámetros y Argumentos
Los parámetros son las “variables esperadas” en la definición de una función, mientras que los argumentos son los valores concretos que se pasan al llamarla.
👉 Comprender esta diferencia es clave para dominar las funciones en Python.
En Python, las funciones utilizan parámetros y argumentos para recibir y procesar datos. Aquí te explico qué son y cómo funcionan:
- Parámetros: Son variables definidas en la declaración de la función. Actúan como “marcadores” para los valores que la función recibirá.
- Argumentos: Son los valores reales que se pasan a la función cuando se llama. Estos valores reemplazan a los parámetros durante la ejecución.
Fíjate en la imágen de ejemplo de la función Suma, le damos dos parámetros llamados “num1” y “num2“. Estos parámetros serían variables que la función habrá de utilizar cuando sea llamada y en ese momento debemos darle los argumentos para dichos parámetros. Obviamente podemos hacerlo sin especificar solo nos bastará ponerlos en orden. Así tambien podemos asignar argumentos por defecto para estos parámetros para llamar a la función sin especificar argumentos. Por ejemplo:
def Suma (num1 = 2, num2 = 3): return (num1 + num2) #En este caso al llamarla sin especificar argumentos, serán asignados los que están por defecto. Suma() #Y la salida será entonces: 5
🌟 Ejemplo Práctico
Supongamos que queremos crear una función que calcule el área de un rectángulo:
# Definición de la función con PARÁMETROS def calcular_area(base, altura): return base * altura # Llamada a la función con ARGUMENTOS area = calcular_area(5, 3) # Argumentos: base=5, altura=3 print(f"El área del rectángulo es: {area}") # Salida: El área del rectángulo es: 15
💡 Tipos de Argumentos en Python
- Argumentos Posicionales: Se asignan según su posición.
calcular_area(5, 3) # 5 -> base, 3 -> altura
- Argumentos Nombrados: Se asignan por nombre, sin importar el orden.
calcular_area(altura=3, base=5) # Mismo resultado, pero especificando nombres
- Argumentos Predeterminados: Si no se pasa un valor, se usa uno predeterminado.
def saludar(nombre="Mundo"): print(f"Hola, {nombre}!") saludar() # Salida: Hola, Mundo! saludar("Juan") # Salida: Hola, Juan!
Concepto | Definición | Ejemplo |
---|---|---|
Parámetro | Variable definida al crear la función. | nombre en def saludar(nombre) |
Argumento | Valor real que se pasa al llamar la función. | "Juan" en saludar("Juan") |
Entender la diferencia entre parámetros y argumentos es clave para dominar las funciones en Python. ¡Practica creando tus propias funciones y experimentando con diferentes tipos de argumentos!
Recuerda que los parámetros son como “promesas” de información, mientras que los argumentos son los datos reales que cumplen esa promesa. ¡Experimenta y diviértete aprendiendo Python!
🔍 ¿Cómo Conocer Todas las Funciones Built-in de Python?
Python viene con un conjunto de funciones incorporadas (built-in) que están listas para usar sin necesidad de instalar nada extra. Estas funciones son herramientas poderosas que te ayudarán a resolver problemas comunes sin tener que escribir código desde cero.
Pero, ¿cómo puedes descubrir qué funciones incorporadas existen y cómo usarlas? ¡No te preocupes! Python tiene herramientas muy útiles que te permiten explorar estas funciones fácilmente. A continuación, te enseñaremos cómo hacerlo paso a paso:
1️⃣ Usando dir()
para Listar Funciones Built-in
La función dir()
es como un “mapa” que te muestra todas las herramientas disponibles en un módulo o espacio de trabajo. Para ver todas las funciones incorporadas de Python, puedes usar el módulo builtins
. Aquí está el truco:
print(dir(__builtins__))
Cuando ejecutes este código, obtendrás una lista con todas las funciones incorporadas de Python, como print()
, len()
, input()
, sum()
, y muchas más. Es como abrir una caja de herramientas y ver todo lo que tienes disponible.
No te preocupes si algunas en la lista no tienen sentido ahora. Con el tiempo, aprenderás a usarlas.
2️⃣ Usando help()
para Entender Cómo Funciona una Función
Una vez que sepas qué funciones existen, puedes usar la función help()
para obtener información detallada sobre cualquier función. Por ejemplo, si quieres saber cómo funciona input()
, simplemente escribe:
help(input)
Esto mostrará una descripción completa de la función, incluyendo:
- Qué hace: Una breve explicación del propósito de la función.
- Parámetros: Los valores que puedes pasarle a la función.
- Ejemplos de uso: Algunas veces, incluso encontrarás ejemplos prácticos.
Aquí tienes un ejemplo de cómo se ve la salida de help(input)
:
Help on built-in function input in module builtins: input(prompt=None, /) Read a string from standard input. The trailing newline is stripped. The prompt string, if given, is printed to standard output without a trailing newline before reading input. If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. On *nix systems, readline is used if available.
Si ves algo que no entiendes, no te frustres. La clave es practicar y experimentar poco a poco.
3️⃣ Ejemplo Práctico: Explorando print()
Vamos a explorar juntos cómo funciona la función print()
. Abre tu intérprete de Python (puedes usar Jupyter Notebook, IDLE o cualquier terminal) y escribe:
help(print)
Verás algo como esto:
Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.
¿Qué significa esto?
- Puedes pasar varios valores separados por comas (
value, ...
). - El argumento
sep
te permite cambiar cómo se separan los valores (por defecto, usa un espacio). - El argumento
end
define qué se imprime al final (por defecto, un salto de línea\n
).
Ahora sabes que puedes personalizar print()
para que funcione exactamente como necesitas. Por ejemplo:
print("Hola", "Mundo", sep="*", end="!") # Salida: Hola*Mundo!
4️⃣ Practica con Otras Funciones
Aquí tienes una lista rápida de algunas funciones incorporadas que deberías explorar usando help()
:
Función | Descripción |
---|---|
len() |
Devuelve la longitud de una lista, cadena u otro iterable. |
sum() |
Suma los elementos de un iterable (como una lista). |
type() |
Devuelve el tipo de dato de un objeto. |
int() |
Convierte un valor a un número entero. |
str() |
Convierte un valor a una cadena de texto. |
float() |
Convierte un valor a un número decimal. |
Por ejemplo, prueba esto:
help(len) help(sum)
🧠 Un Ejercicio para Ti
Abre tu cuaderno de Jupyter y sigue estos pasos:
- Usa
dir(__builtins__)
para listar todas las funciones incorporadas. - Escoge una función que te llame la atención (por ejemplo,
abs()
oround()
). - Usa
help()
para aprender más sobre esa función. - Experimenta con ella en tu código.
🧮 Creamos una calculadora sencilla en Jupyter Notebook
Vamos a crear una calculadora sencilla en Python en nuestro cuaderno Jupyter y vamos a ejecutarla para repasar funciones:
- Creamos las 4 funciones básicas de nuestra calculadora que tendrán 2 parámetros para los argumentos de entrada. En este caso los he llamado num1 y num2.
- Solicitamos al usuario ingrese dos números enteros, para ellos utilizamos la función “input()” pero dentro de la función “int()” en este caso, para convertir el dato ingresado si o si a un entero antes de almacenarlo.
- Llamamos a la función deseada que procesará estos datos indicandolé como argumentos para los parámetros “num1” y “num2” de alguna de las 4 funciones las variables de entrada1 y entrada2 donde almacenamos estos números enteros. Esta imprimirá el resultado automáticamente como esta definido en el return de la función correspondiente.
# -*- coding: utf-8 -*- #Calculadora ultra sencilla en Python 3 - https://pythones.net #Declaramos funciones incluyendo parametros "num1" y "num2" def suma(num1, num2): #Función SUMA resultado = (num1 + num2) #Creamos la variable resultado return (f"La suma de {num1} y {num2} es {resultado}") #Almacenamos la respuesta def resta(num1, num2): #Función RESTA resultado = (num1 - num2) return (f"La resta de {num1} y {num2} es {resultado}") def division(num1, num2): #Función DIVISIÓN resultado = (num1 / num2) return (f"La división de {num1} y {num2} es {resultado}") def multiplicacion(num1, num2): #Función MULTIPLICACIÓN resultado = (num1 * num2) return (f"La multiplicación de {num1} y {num2} es {resultado}") #Comienzo de la ejecución, recordamos que las funciones no se ejecutarán #hasta que sean llamadas con sus respectivos Argumentos para los parámetros num1 y num2 print("Bienvenido a calculadora en python 3 de pythones.net") #Solicitamos datos al usuario usamos "int" para convertirlos en entero #Dentro de "int" la función "input" con el texto a mostrar al pedir datos. entrada1 = int(input("Ingrese el primer número: ")) entrada2 = int(input("Ingrese el primer número: ")) #Función a ejecutar - Debes cambiarla manualmente #Recuerda que no podemos dividir por cero. suma(entrada1, entrada2) #En esta función usamos como Argumentos las variables que contienen # los datos de entrada1 y entrada2 para llevarlos a los parámetros num1 y num2
Resultado:
Bienvenido a calculadora en python 3 de pythones.net
Ingrese el primer número: 1
Ingrese el primer número: 5
‘La suma de 1 y 5 es 6’
Obviamente podrías mejorar mucho esta calculadora añadiendo una lista de opciones según que operación desea realizar el usuario entre otras muchas cosas, pero nos mantenemos en lo más básico y comprensible para explicar como funcionan (valga la redundancia redundante) las funciones.
Fíjate que en nuestro “programa” estamos usando funciones creadas por nosotros combinadas con funciones built-in de Python 3 para simplificar mucho el código. Como verás es tan sencillo programar en Python que enamora 😍.
📝 Conclusión y resumen del post
Aunque el código pueda parecerte ahora algo complicado o avanzado porque aún no hemos visto nada de esto, recuerda que este post es solo una demostración para que comprendas cómo funciona la sintaxis del lenguaje y en este caso que puedas aprender los tipos de funciones y como utilizarlas para comenzar a programar. En la lección siguiente haremos un repaso completo con ejercicios y aprenderemos algunos detalles muy importantes.