Home
» Power BI
»
Cómo llamar a una función en Python: la guía definitiva
Cómo llamar a una función en Python: la guía definitiva
Las funciones son un concepto esencial en la programación que le permite administrar y reutilizar bloques de código. Saber cómo llamar a una función en Python es una habilidad clave para aprender.
En este tutorial, aprenderá los conceptos básicos de las funciones de llamada, junto con algunos consejos para escribir código eficiente que sea más fácil de entender.
El dominio de las funciones no solo lo ayudará a crear un código más versátil, sino que también agilizará su proceso de programación y mejorará su eficiencia general como desarrollador.
Las funciones tienen los mismos principios subyacentes, y una vez que domine las funciones en Python, podrá ampliar su comprensión de las funciones en comparación con otros lenguajes de programación como Java, R, JavaScript, PHP, etc.
Una función en Python le permite crear piezas de código reutilizables que se pueden llamar a través de su programa, simplificando su código y mejorando la legibilidad. Realiza una tarea específica o un conjunto de tareas y se puede llamar varias veces dentro de un programa.
Definición de una función en Python
Hay dos categorías principales de funciones en Python:
Funciones definidas por el usuario: funciones que un programador define para evitar la repetición de código
Funciones integradas : funciones definidas por otra persona y que se pueden usar en su código después de instalar los paquetes necesarios
Esta sección del tutorial de Python se centra en las funciones definidas por el usuario. Aprenderás:
Cómo definir una función en Python
La sintaxis de la función
Cómo usar parámetros y argumentos
Sintaxis de la función
La def palabra clave, seguida del nombre de la función y los paréntesis, le permite definir una función en Python. El cuerpo de la función está sangrado y contiene el código que se ejecutará cuando se llame a la función. A continuación se muestra un ejemplo de una función básica en Python:
def saludar(): print("¡Hola, mundo!") saludar()
La def palabra clave define una nueva función con el nombre saludo. La tercera línea de código invoca la función, que ejecuta el código dentro de la función.
La printlínea en el código anterior también es una función. Sin embargo, si está trabajando en un entorno de Python 2, se define como una declaración. Más tarde, en Python 3, se cambió de declaración a función.
Parámetros y Argumentos
Los parámetros son los marcadores de posición en la definición de la función, mientras que los argumentos son los valores pasados al llamar a la función.
Para especificar parámetros, inclúyalos entre paréntesis de la definición de la función, separados por comas si hay varios parámetros. Cuando llama a una función, proporciona los valores de entrada llamados argumentos. El siguiente ejemplo demuestra la definición de una función que toma dos parámetros:
def suma_números(a, b): devuelve a+b
La return instrucción en el cuerpo de la función devuelve la suma de los dos argumentos que se le pasan. Puede considerarlo como una calculadora, donde ingresa valores y obtiene el resultado deseado a cambio.
Después de definir la función, podemos llamarla con argumentos de nuestra elección.
sumar_numeros(3, 5)
El argumento de los kwargs
kwargs es la abreviatura de "argumentos de palabras clave" en Python. Le permite ampliar la flexibilidad de una función al permitir que la persona que llama especifique cualquier número de argumentos de palabras clave al llamar a la función. Los argumentos de palabras clave se pasan como un diccionario a la función.
En una definición de función, puede usar la **sintaxis de doble asterisco antes del nombre del parámetro para aceptar argumentos de palabras clave.
def mi_función(**kwargs): for clave, valor en kwargs.items(): print(f"{clave} = {valor}") mi_función(a=1, b=2, c=3)
En este ejemplo, kwargs habrá un diccionario que contenga los argumentos de palabras clave pasados a la función. La salida se muestra en la siguiente imagen:
Llamar a una función
Llamar a una función significa ejecutar el código dentro del cuerpo de la función. Hay cuatro tipos de llamadas a funciones en Python:
Llamada de función básica
Llamar con argumentos posicionales
Llamar con argumentos de palabras clave
Llamada de función básica
Una llamada de función básica invoca la función sin pasar ningún argumento a la función. Después de definir una función, puede llamarla usando su nombre seguido de paréntesis.
Si la función no acepta ningún argumento, los paréntesis estarán vacíos. El siguiente código es un ejemplo de una función básica.
def mensaje_de_bienvenida(): print("¡Bienvenido a LuckyTemplates!") mensaje_de_bienvenida()
Ejecutar el código anterior da el siguiente resultado:
Argumentos posicionales
Los argumentos posicionales son el tipo de argumento más común y se pasan a la función en el mismo orden en que se especifican. El siguiente es un ejemplo de una llamada de función con argumentos posicionales:
def mensaje_de_bienvenida(nombre): print(f"¡Bienvenido a LuckyTemplates, {nombre}!") mensaje_de_bienvenida("Juan")
En el ejemplo anterior, la welcome_message()función toma un argumento, name. Cuando llame a esta función con el argumento John, imprimirá el mensaje junto al nombre.
El código anterior da el siguiente resultado:
Argumentos de palabras clave
Otra forma de pasar argumentos a una función es usar argumentos de palabras clave. Los argumentos de palabras clave le permiten especificar el nombre del parámetro junto con su valor, lo que hace que el código sea más legible y reduce la posibilidad de pasar argumentos en el orden incorrecto.
El siguiente ejemplo utiliza argumentos de palabras clave para llamar a la welcome_messagefunción:
def mensaje_de_bienvenida(nombre, mensaje='¡Bienvenido a LuckyTemplates!'): print(mensaje, nombre) mensaje_de_bienvenida(nombre='Alice', mensaje='Buenos días')
En este ejemplo, hemos definido una función welcome_message()que tiene dos parámetros, name, y message. El parámetro del mensaje tiene un argumento predeterminado de Welcome to LuckyTemplates!Al llamar a la función, usamos argumentos de palabras clave para pasar el valor John, lo que da como resultado la salidaWelcome to LuckyTemplates! John.
Valores devueltos
Cuando trabaje con funciones, a menudo querrá devolver el resultado de las operaciones dentro del cuerpo de su función. Los valores devueltos permiten que una función envíe un resultado a la persona que llama. Al comprender cómo trabajar con valores de retorno únicos y múltiples, puede mejorar la funcionalidad de sus programas de Python.
Valor de retorno único
Una función de valor de retorno único devuelve un valor de las operaciones en una función.
A continuación se muestra un ejemplo de una función de valor de retorno único:
En el ejemplo anterior, la función get_greetingtoma un nombre ya que su argumento de función lo compila y devuelve un saludo personalizado. Luego, el valor de retorno se almacena en el saludo variable y se imprime en la consola.
Múltiples valores de retorno
A veces, se le pedirá que devuelva más de un valor de una función en Python. Para lograr esto, puede usar una tupla o una lista para envolver los valores devueltos.
A continuación se muestra un ejemplo de la función de valores de retorno múltiples en el lenguaje de programación Python.
En este caso, la función calculate_areastoma dos argumentos, heighty width, y devuelve una lista que contiene el área de un rectángulo y el área de un triángulo.
Pasar funciones de Python como argumentos
Python le permite pasar funciones como argumentos a otras funciones. Cuando una función acepta otra función como argumento, se la denomina función de orden superior.
El siguiente código es un ejemplo de pasar una función a otra función en Python:
def cuadrado(x): devuelve x * x def doble(x): devuelve x * 2 def apply_func(func, x): devuelve func(x) resultado = apply_func(cuadrado, 5)
Funciones anidadas
Las funciones anidadas son funciones definidas dentro de otra función, también conocidas como funciones internas. Estos pueden ser útiles al crear cierres y código modular.
Para crear una función anidada, simplemente defina una función dentro de otra función:
def función_externa(x, y): def función_interna(z): devuelve x + y + z resultado = función_interna(3) devuelve resultado # Llamar a la función externa imprimir(función_externa(1, 2))
En el ejemplo anterior, la función_interna se define dentro de la función_externa. La función interna tiene acceso a las variables de la función externa, lo que le permite realizar operaciones sobre ellas.
Funciones Lambda
Las funciones Lambda, también conocidas como funciones anónimas, son una forma de crear funciones pequeñas de un solo uso en Python. En proyectos de ciencia de datos, a menudo trabajará con funciones de Lambda para crear estructuras de datos y canalizaciones eficientes.
Para crear una función lambda, puede usar la palabra clave lambda seguida de una lista de argumentos, dos puntos y luego una expresión. La expresión es lo que devolverá la función lambda una vez que se llame. El siguiente es un ejemplo de la función lambda en Python:
agregar = lambda a, b: a + b resultado = agregar (3, 4) imprimir (resultado) # Salida: 7
En el ejemplo anterior, creamos una función lambda que toma dos argumentos ( a y b) y devuelve su suma. Asignamos esta función lambda a una variable llamada add.
Lambda puede ser útil en los siguientes escenarios:
Como argumentos para funciones de orden superior como map(), filter() y sorted().
Como funciones clave a la hora de ordenar listas o diccionarios.
El siguiente ejemplo demuestra el uso de la función de orden superior filter() con lambda:
En este ejemplo, usamos una función lambda para definir los criterios de filtrado para la función filter(). La función lambda comprueba si un número es par y la función filter() devuelve una nueva lista que contiene solo los números pares.
Para ver un ejemplo de cómo las funciones pueden ser útiles en diferentes escenarios de ciencia de datos, vea el video a continuación:
recursividad
La recursividad es una técnica de programación en la que una función se llama a sí misma. Esta puede ser una forma útil de resolver problemas complejos dividiéndolos en subproblemas idénticos más pequeños.
Al crear una función recursiva, debe tener en cuenta dos cosas: el caso base y el caso recursivo.
El caso base es la condición que detiene la recursión.
El caso recursivo es donde la función se llama a sí misma. El caso recursivo actúa como un iterador para la función
El siguiente ejemplo demuestra funciones recursivas en Python:
def factorial(n): si n == 1: devuelve 1 devuelve n * factorial(n - 1) factorial(5)
En este ejemplo, el caso base es when n == 1y la función devuelve 1. El caso recursivo ocurre cuando n no es igual a 1 y la función se llama a sí misma con n - 1.
Errores comunes y resolución de problemas
Si es un programador principiante, a menudo encontrará errores al implementar funciones como funciones recursivas y lambda. Las siguientes secciones resaltan algunos errores comunes y sugerencias de solución de problemas para ayudarlo a resolverlos de manera eficiente.
1. TypeError: falta un argumento requerido : este error ocurre cuando no proporciona la cantidad correcta de argumentos que espera la función.
Para corregir este error, asegúrese de pasar la cantidad correcta de argumentos a su función.
2. TypeError: tipo de operando no admitido . Este error puede ocurrir cuando intenta usar un operador con tipos incompatibles.
def add_number(a, b): return a + b # Resultado correcto de la llamada = add_number(5, 3) print(resultado) # Provocará un error debido a argumentos incorrectos result = add_number("5", 3) print(resultado)
Para corregir este error, verifique que sus funciones estén tratando con los tipos de datos correctos y considere usar la conversión de tipos si es necesario
3. NameError: el nombre 'function_name' no está definido : este error sugiere que la función no se ha definido antes de llamarla.
# Orden correcto def saludo(): print("¡Hola!") saludo() # Orden incorrecto adiós() def adiós(): print("¡Adiós!")
Para corregir este error, asegúrese de que su función esté definida correctamente y que la llame después de su definición.
Conclusión
Para recapitular y ayudarlo a solidificar su comprensión, los siguientes puntos resumen los aspectos clave de las funciones de llamada en Python:
Para llamar a una función, utilice el nombre de la función seguido de paréntesis (p. ej., function_name()).
Si la función acepta argumentos, inclúyalos entre paréntesis (p. ej., function_name(arg1, arg2)).
Puede crear sus propias funciones usando la palabra clave def, definiendo el alcance de la función y los argumentos requeridos.
Al llamar a una función que devuelve un valor, puede asignar el resultado a una variable para su uso posterior (p. ej., result = function_name(args)).