Saltar a contenido

Funciones definidas por el usuario

Ya hemos visto anteriormente que Python posee funciones predefinidas para realizar ciertas tareas, como por ejemplo imprimir en pantalla a través de la función print(), o solicitar datos al usuario a través de la función input(). También aprendimos que existen diferentes tipos de datos y que se pueden convertir unos en otros a través de funciones como int(), float() o str(), entre otras. Y hasta vimos que podemos modificar valores numéricos a través de funciones como round(), entre tantas otras.

Pero, ¿que tan genial sería si pudiéramos crear nuestras propias funciones que solucionen problemas específicos que necesitamos resolver una y otra vez?

Por ejemplo, es muy bueno que Python venga con la función de impresión incorporada, porque es realmente útil poder imprimir cosas en la pantalla, pero ¿no sería muy bueno también si pudieras imprimir cosas específicas en la pantalla simplemente llamando a tu propia función, y que esta función se comporte como tu quieras y no de manera predeterminada como los desarrolladores del lenguaje la concibieron?

Las funciones que se definen dentro de un programa se llaman funciones definidas por el usuario o funciones personalizadas. Estas funciones son creadas por los programadores para realizar tareas específicas dentro de un programa cuando el lenguaje de programación carece de una función predefinida para tal fin.

Importancia de las funciones definidas por el usuario

Las funciones definidas por el usuario son una de las características más importantes de cualquier lenguaje de programación moderno.

Permiten a los programadores dividir un programa en partes más pequeñas y manejables, lo que facilita la escritura, la depuración y el mantenimiento del código.

Además, las funciones definidas por el usuario pueden ser reutilizadas en diferentes partes de un programa o en diferentes programas, lo que ahorra tiempo y esfuerzo al programador para desarrollar un algoritmo específico cada vez que se requiera realizar una tarea similar.

Por ejemplo, a lo largo de este curso, hemos estado escribiendo programas que solicitan al usuario que ingrese su nombre y luego imprimen un mensaje de saludo en pantalla.

Si tuviéramos que escribir este código una y otra vez en diferentes programas, sería mucho más eficiente crear una función que realice esta tarea y, luego, simplemente llamarla cada vez que necesitemos saludar al usuario.

Con esta premisa en mente, tomemos el siguiente programa:

Python
1
2
3
nombre = input("¿Cuál es tu nombre? ")
hola()
print(nombre)

En este caso, el programa solicita al usuario que ingrese su nombre a través de la función input(), luego llama a una función hola() que debería imprimir un mensaje de saludo en pantalla, y finalmente imprime el nombre ingresado por el usuario.

NameError: funciones no definidas

Si ejecutamos este programa, obtendremos un error, ya que la función hola() no está definida en el programa.

Terminal (Entrada/Salida)
¿Cuál es tu nombre? Pablo
Traceback (most recent call last):
  File "c:\Users\usuario\hola_mundo.py", line 2, in <module>
    hola()
    ^^^^
NameError: name 'hola' is not defined

Tal vez los desarrolladores de Python no pensaron que necesitábamos una función especial solo para decir "Hola", pero sería genial si existiera.

Para solucionar este problema, necesitaremos definir la función hola() en nuestro programa. Es decir, crear una función personalizada que realice la tarea de imprimir un mensaje de saludo en pantalla, ya que esta no existe en Python.