Funciones en Python
En la mayoría de los lenguajes de programación, contamos con herramientas de programación llamadas funciones.
Definición
Una función es como una acción o un verbo que realiza una tarea específica durante la ejecución del programa.
Está definida por una serie de instrucciones, declaraciones o sentencias que conforman el cuerpo de la función, el cual retorna algún valor (resultado) al punto del programa desde donde es invocada (llamada) la función.
También se le pueden pasar cero o más argumentos que pueden usarse en la ejecución del cuerpo de la función con el objeto de realizar una tarea específica o modificar su comportamiento.
Funciones incorporadas o predefinidas (built-in functions)
Y, en términos generales, cualquier del lenguaje de programación viene con un conjunto predeterminado de funciones, algunas acciones o verbos muy básicos que la computadora ya sabrá cómo ejecutar por nosotros; y que nosotros podremos usar a voluntad para lograr que la computadora cumpla con su cometido.
Las funciones incorporadas o predefinidas son funciones que vienen con el intérprete de Python y están siempre disponibles para su uso. Estas funciones son las encargadas de realizar las operaciones y tareas básicas dentro de un programa. Puedes consultarla en línea en el siguiente enlace:
Funciones predefinidas de Python
Las funciones siempre se llaman o invocan escribiendo su nombre y a continuación, entre paréntesis, los argumentos necesarios; es decir, los datos que le pasaremos para que pueda realizar su tarea.
Cada función que es llamada o invocada podrá recibir entre cero y n argumentos que almacenará, en el orden indicado, en los cero a n parámetros que tenga disponibles (siempre debe haber la misma cantidad de parámetros que de argumentos recibidos).
Algunos ejemplos de funciones incorporadas son print()
, input()
, len()
, type()
, str()
, int()
, entre otras. No necesitas importar ningún módulo para usar estas funciones, ya que son una parte integral del lenguaje Python.
¡Para recordar!
Python es Case Sensitive1, siendo fundamental respetar mayúsculas y minúsculas: print() no es lo mismo que PRINT() o Print() o prINT() o cualquier otra combinación que puedas escribir.
Además, las funciones incorporadas siempre deben ser escritas en minúsculas: print() es la sintaxis2 correcta; mientras que Print(), PRINT(), pRINT() o cualquier otra combinación que puedas escribir no será reconocida.
Estos dos conceptos aplican para todo lo que escribamos en nuestros programas.
Leyendo la sintaxis de una función
Cuando miramos una función, hay algunas cosas que debemos tener en cuenta.
python "Ejemplo de función"
nombre_de_la_funcion([argumentos])
Toda función comienza con un nombre que la identifica, seguido por un paréntesis que se abre para indicarle a la función los argumentos potenciales (por eso se colocan los corchetes) que permitirán a la función realizar su tarea, seguido por un paréntesis que se cierra.
argumentos vs. parámetros
A menudo, escuchamos a las personas hablar de los argumentos de una función. Por ejemplo, "puedes pasar argumentos a una función" o "esta función toma dos argumentos".
Sin embargo, cuando analizamos estos argumentos en la documentación, técnicamente hay un término diferente que suele aparecer y que se refiere técnicamente como los parámetros de la función.
Esto es bastante confuso así que intentaremos clarificarlo:
Cuando definimos una función y hablamos de los datos que se le pueden pasar y cómo se llaman o identifican a esas "entradas" (inputs) que almacenarán a estos datos, hablamos de parámetros.
Cuando llamamos (invocamos), es decir, usamos la función y le pasamos valores dentro de esos paréntesis, esas entradas, hablamos de argumentos.
Entonces, estamos hablando exactamente de lo mismo: los parámetros y los argumentos son efectivamente lo mismo, pero los términos que se usan al mirar el problema desde diferentes direcciones son distintos. Cuando analizamos que valores podrá recibir la función hablamos de parámetros y cuando le pasando valores concretos a la función para que se ejecute hablamos de argumentos.
Tipos de argumentos o parámetros
En Python, los argumentos o parámetros de una función pueden ser de dos tipos: posicionales y con nombre.
-
Argumentos posicionales: son aquellos que se pasan a la función en el orden en que se definen. Es decir, el primer argumento se asigna al primer parámetro, el segundo argumento al segundo parámetro, y así sucesivamente.
Son también conocidos como argumentos sin palabra clave (non-keyword arguments) -
Argumentos con nombre: son aquellos que se pasan a la función con su nombre correspondiente. Esto permite que los argumentos se pasen en cualquier orden y que se omitan los argumentos que tienen valores predeterminados (por defecto), es decir, que si no se especifican valores para estos argumentos, se toma un valor por defecto.
Son también conocidos como argumentos con palabra clave (keyword arguments)
Una función en acción
Ahora que ya sabemos que es una función. analicemos el código que acabamos de escribir en nuestro primer programa. Utiliza una función llamada print()
, que será la encargada de imprimir Hola, Mundo!.

Aquí en una sola línea de código, la línea 1, podemos observar tres cosas:
- El nombre de la función: print.
- Como es una función, a continuación se abren y cierran paréntesis.
- Entre los paréntesis se escribe el argumento que será pasado (enviado) a la función para que esta lo procese y devuelva un resultado.
Nombre
El nombre de una función en Python es el identificador que se utiliza para llamar a la función.
Argumento
Las funciones toman argumentos que influyen en su comportamiento, sólo hay que saber cuáles son esos argumentos.
Un argumento es un dato, un input o ingreso que se le pasa a una función, que de alguna manera influye en su comportamiento.
Quienes desarrollan los lenguajes de programación no necesariamente saben qué es lo que cada programador va a querer hacer con cada función definida. Por lo tanto, es preciso que estas funciones, entre paréntesis, tengan la capacidad de recibir argumentos que almacenarán de manera ordenada e identificada en diferentes parámetros, para luego procesarlos y obtener un resultado que finalmente devolverán (return) a la posición donde el flujo del programa haya realizado la llamada a la función.
Para conocer cuáles son los argumentos que una función puede recibir, es necesario consultar la documentación oficial de Python o la ayuda de la función en cuestión.
Valor de retorno
El valor de retorno es el resultado que una función devuelve después de realizar su tarea.
En Python, todas las funciones devuelven un valor, incluso si no se especifica explícitamente. Y Si no se especifica un valor de retorno, la función devolverá None
por defecto, lo que significa que la función no devuelve ningún valor específico.
¡Para recordar!
El valor None
es un tipo de dato especial en Python que representa la ausencia de un valor, es decir que algo no tiene un valor asignado o que algo no devuelve un valor específico. De esta manera, no debemos confundir a None
con False
, 0
, ""
o []
, ya que None
es un valor único y especial en Python.
Anidamiento de funciones
Cuando utilizamos funciones, es muy importante tener en cuenta que es posible anidar varias funciones para obtener un resultado compuesto.
Por ejemplo, int(input("Ingrese el primer número: "))
. Si no lo has notado, aquí estamos anidando dos funciones: input()
y int()
. Si no conoces cual es el funcionamiento de estas funciones, no te preocupes, por el momento vamos a decir que una de ellas recibe un valor del usuario y la otra convierte ese valor en un número entero, porque por defecto, el valor que se recibe del usuario es siempre una cadena de caracteres. Más adelante, vamos a estudiar con más detalle cómo funcionan estas funciones.
Volviendo al tema, podemos colocar una llamada a función (function call en inglés), en este caso input()
, adentro de otra llamada a función, en este caso int()
; para que el valor de retorno de la función interna (inner function en inglés) se convierta en el argumento o la entrada de la función externa (outer function en inglés).
Al igual que en matemáticas, si tienes paréntesis, paréntesis, paréntesis, probablemente te han enseñado a concentrarte primero en lo que está dentro de los paréntesis más internos y luego a salir de estos y concentrarte en lo que sigue. Lo mismo ocurre con la programación. Y esto es lo que va a hacer Python. Primero ejecutará y resolverá lo que hay dentro del paréntesis, obtendrá la respuesta y luego pasará el valor de retorno a la función más externa para ejecutarla.
En resumen, el anidamiento de funciones es una técnica que se utiliza para llamar a una función dentro de otra función. Esto puede ser útil cuando necesitas realizar una serie de operaciones o tareas que requieren el uso de varias funciones en secuencia.
Referencias
-
Case sensitive es un término en inglés que se traduce como "sensible a mayúsculas y minúsculas". Significa que las letras mayúsculas y minúsculas se tratan como caracteres distintos.
Esto también se aplica a las funciones, los nombres de las clases y otras partes del código. Por lo tanto, es importante prestar atención a las mayúsculas y minúsculas al escribir código en un lenguaje que es case sensitive. ↩
-
Sintaxis se refiere al conjunto de reglas que definen cómo se deben escribir y estructurar los programas en un lenguaje de programación específico.
Estas reglas determinan cómo se deben organizar las instrucciones, las variables, los bloques de código y otros elementos para que el código sea válido y pueda ser interpretado o compilado por la computadora.
Por ejemplo, especifica cómo se deben declarar las variables, cómo se deben llamar a las funciones, cómo se deben escribir las estructuras de control como los bucles y las sentencias condicionales, entre otras cosas.
Un error de sintaxis (también conocido como error de compilación) ocurre cuando se viola una de estas reglas. Los errores de sintaxis deben corregirse antes de que el código pueda ejecutarse. ↩