Funciones y paso de parámetros en Python (A3C34B2D04)

Introducción

Python es un lenguaje de programación versátil que hace hincapié en la legibilidad del código y la sintaxis simple. Un elemento fundamental en cualquier lenguaje de programación, incluyendo Python, es la definición de funciones. A continuación, se discutirán las funciones de Python y se proporcionarán detalles sobre cómo se crean y se utilizan. Además, se examinará la diferencia entre argumentos y parámetros y se introducirá el concepto de parámetros por defecto.

Creación y uso de funciones

En Python, una función es un bloque de código reutilizable que realiza una acción específica. Las funciones proporcionan una forma de organizar el código en bloques lógicos, lo que permite una mayor claridad y facilidad de mantenimiento. Las funciones se crean utilizando la palabra clave def, seguida del nombre de la función y los paréntesis. Por ejemplo:

def mi_funcion():
    print(“¡Hola, mundo!”)

Una vez definida, la función se puede llamar o invocar, para ejecutarla, utilizando su nombre seguido de paréntesis:

mi_funcion()

Ejecutar esta función mostraría por pantalla el texto «¡Hola, mundo!». Como se puede observar, una función puede estar formada por muchas otras expresiones que serán ejecutadas en orden cuando se invoque a dicha función. En este caso, la función que se ha definido ejecutaría una única expresión formada por la invocación a otra función llamada print para mostrar texto en pantalla.

Argumentos y parámetros

El término argumento y parámetro a menudo se utilizan indistintamente en programación, pero hay una diferencia clave. Un parámetro es una variable en la definición de la función, mientras que un argumento es el valor que se pasa a la función cuando se llama. 

Por ejemplo, en la siguiente función, nombre es un parámetro:

def saludar(nombre):
    print(f”¡Hola, {nombre}!”)

Y cuando se invoca a la función, el valor que se le pasa, Pedro, es un argumento:

saludar(“Pedro”)

Pero, ¿qué sucedería si se invocara a la función del ejemplo sin ningún argumento? Por ejemplo, tal que así:

saludar()

En este caso, se ha definido una función que espera un argumento en su parámetro nombre, por lo que, si se invocara a la función sin pasarle dicho argumento, el intérprete de Python respondería con la siguiente salida de error por pantalla:

Traceback (most recent call last):
    File “<stdin>”, line 1, in <module>
TypeError: saludar() missing 1 required positional argument: ‘nombre’

Como indica el error, a la invocación de la función saludar() le falta un argumento, tal y como ésta espera que sea invocada.

Nota

Python permite insertar variables directamente sobre en las cadenas de texto, tal y como se muestra en la invocación a la función print() del ejemplo anterior. Para ello, solo hay que prefijar la cadena con el carácter f y envolver entre llaves { } las variables o expresiones que se deseen incluir en la cadena de texto.

Parámetros por defecto

Para terminar, Python permite definir parámetros con valores por defecto en las funciones. Esto significa que, si al invocar la función no se proporciona un valor para ese parámetro, se utilizará el valor por defecto que se haya indicado al definir la función. Por ejemplo:

def saludar(nombre=”Mundo”):
    print(f”¡Hola, {nombre}!”)

En este caso, si se invoca a la función sin ningún argumento mediante saludar(), se mostrará el texto «¡Hola, Mundo!» por pantalla ya que el parámetro nombre tiene como valor por defecto asignado la cadena de texto «Mundo». Pero si se le pasa un argumento, como en saludar(“Pedro”), se mostrará «¡Hola, Pedro!» en su lugar. Esta técnica es muy útil para darle a las funciones un comportamiento por defecto y evitar así errores como el mostrado en la sección anterior. Por ejemplo, se indican a continuación algunos casos de uso:

  • Dotar a las funciones de un comportamiento flexible: los parámetros por defecto permiten que las funciones se comporten de manera diferente dependiendo de cuánta información se proporcione. Por ejemplo, una función potencia(base, exponente=2) podría calcular el cuadrado de un número si solo se proporciona un argumento, pero calcularía la potencia especificada si se proporcionan dos argumentos.

  • Simplificar las invocaciones de la función: en funciones que requieren muchos parámetros, proporcionar valores por defecto puede simplificar la invocación a la función, ya que solo se necesitarán argumentos para unos pocos parámetros críticos u obligatorios.

Conclusión

Los beneficios de utilizar funciones en Python son múltiples. En primer lugar, permiten la reutilización del código, lo que mejora la eficiencia y la coherencia; en lugar de tener que repetir el mismo código en diferentes partes del programa, se puede definir una función una vez y luego llamarla siempre que se necesite realizar esa operación específica.

Además, las funciones en Python contribuyen a la organización y la legibilidad del código; al agrupar segmentos de código relacionados en funciones, hacemos que los programas sean más fácil de entender y de mantener. Este beneficio se amplifica aún más por las capacidades de Python para definir parámetros por defecto y proporcionar argumentos a las funciones por su nombre, lo que mejora la flexibilidad y la claridad de las interacciones con las funciones.

Saber más

Para saber más sobre las funciones en Python, puedes consultar la documentación oficial en castellano: e.digitall.org.es/definir-funciones