Una función es un conjunto de sentencias que toman entradas, hacen algún cálculo específico y producen salidas. La idea es juntar algunas tareas comunes o repetidas y crear una función para que, en lugar de escribir el mismo código una y otra vez para diferentes entradas, podamos llamar a la función.
Las funciones que vienen fácilmente con Python se denominan funciones integradas. Python proporciona funciones integradas como print(), etc., pero también podemos crear sus propias funciones. Estas funciones se conocen como funciones definidas por el usuario .
Tabla de contenidos
Funciones definidas por el usuario
Todas las funciones escritas por cualquiera de nosotros entran en la categoría de funciones definidas por el usuario. A continuación se muestran los pasos para escribir funciones definidas por el usuario en Python.
- En Python, la palabra clave def se usa para declarar funciones definidas por el usuario.
- Un bloque de instrucciones con sangría sigue al nombre de la función y los argumentos que contienen el cuerpo de la función.
Sintaxis:
def function_name(): statements . .
Ejemplo:
Python3
# Python program to # demonstrate functions # Declaring a function def fun(): print("Inside function") # Driver's code # Calling function fun()
Producción:
Inside function
Función parametrizada
La función puede tomar argumentos, también llamados parámetros, como entrada dentro de los paréntesis de apertura y cierre, justo después del nombre de la función seguido de dos puntos.
Sintaxis:
def function_name(argument1, argument2, ...): statements . .
Ejemplo:
Python3
# Python program to # demonstrate functions # A simple Python function to check # whether x is even or odd def evenOdd( x ): if (x % 2 == 0): print("even") else: print("odd") # Driver code evenOdd(2) evenOdd(3)
Producción:
even odd
Argumentos predeterminados
Un argumento predeterminado es un parámetro que asume un valor predeterminado si no se proporciona un valor en la llamada de función para ese argumento. El siguiente ejemplo ilustra los argumentos predeterminados.
Ejemplo:
Python3
# Python program to demonstrate # default arguments def myFun(x, y = 50): print("x: ", x) print("y: ", y) # Driver code (We call myFun() with only # argument) myFun(10)
Producción:
x: 10 y: 50
Nota: Para obtener más información sobre los argumentos predeterminados, haga clic aquí .
Argumentos de palabras clave
La idea es permitir que la persona que llama especifique el nombre del argumento con valores para que la persona que llama no necesite recordar el orden de los parámetros.
Ejemplo:
Python3
# Python program to demonstrate Keyword Arguments def student(firstname, lastname): print(firstname, lastname) # Keyword arguments student(firstname ='Geeks', lastname ='Practice') student(lastname ='Practice', firstname ='Geeks')
Producción:
Geeks Practice Geeks Practice
Argumentos de longitud variable
Podemos tener un número de argumentos tanto normal como de palabra clave variable.
- La sintaxis especial *args en las definiciones de funciones en Python se usa para pasar un número variable de argumentos a una función. Se utiliza para pasar una lista de argumentos de longitud variable sin palabras clave.
- La sintaxis especial **kwargs en las definiciones de funciones en python se usa para pasar una lista de argumentos de longitud variable con palabras clave. Usamos el nombre kwargs con la estrella doble. La razón es que la estrella doble nos permite pasar argumentos de palabras clave (y cualquier número de ellos).
Ejemplo:
Python3
# Python program to illustrate # *args and **kwargs def myFun1(*argv): for arg in argv: print (arg) def myFun2(**kwargs): for key, value in kwargs.items(): print ("% s == % s" %(key, value)) # Driver code print("Result of * args: ") myFun1('Hello', 'Welcome', 'to', 'GeeksforGeeks') print("\nResult of **kwargs") myFun2(first ='Geeks', mid ='for', last ='Geeks')
Producción:
Result of *args: Hello Welcome to GeeksforGeeks Result of **kwargs mid == for first == Geeks last == Geeks
Nota: Para obtener más información sobre los argumentos de longitud variable, haga clic aquí .
¿Pasar por referencia o pasar por valor?
Una cosa importante a tener en cuenta es que en Python cada nombre de variable es una referencia. Cuando pasamos una variable a una función, se crea una nueva referencia al objeto. El paso de parámetros en Python es el mismo que el paso de referencias en Java. Para confirmar, la función id() integrada de Python se usa en el siguiente ejemplo.
Ejemplo:
Python3
# Python program to # verify pass by reference def myFun(x): print("Value received:", x, "id:", id(x)) # Driver's code x = 12 print("Value passed:", x, "id:", id(x)) myFun(x)
Value passed: 12 id: 11094656 Value received: 12 id: 11094656
Producción:
Value passed: 12 id: 10853984 Value received: 12 id: 10853984
Si el valor de la variable anterior se cambia dentro de una función, creará una variable diferente como un número que es inmutable. Sin embargo, si un objeto de lista mutable se modifica dentro de la función, los cambios también se reflejan fuera de la función.
Ejemplo:
Python3
def myFun(x, arr): print("Inside function") # changing integer will # Also change the reference # to the variable x += 10 print("Value received", x, "Id", id(x)) # Modifying mutable objects # will also be reflected outside # the function arr[0] = 0 print("List received", arr, "Id", id(arr)) # Driver's code x = 10 arr = [1, 2, 3] print("Before calling function") print("Value passed", x, "Id", id(x)) print("Array passed", arr, "Id", id(arr)) print() myFun(x, arr) print("\nAfter calling function") print("Value passed", x, "Id", id(x)) print("Array passed", arr, "Id", id(arr))
Producción:
Before calling function Value passed 10 Id 10853920 Array passed [1, 2, 3] Id 139773681420488 Inside function Value received 20 Id 10854240 List received [0, 2, 3] Id 139773681420488 After calling function Value passed 10 Id 10853920 Array passed [0, 2, 3] Id 139773681420488
Función con valor de retorno
A veces, es posible que necesitemos que el resultado de la función se use en un proceso posterior. Por lo tanto, una función también debe devolver un valor cuando finaliza su ejecución. Esto se puede lograr mediante una declaración de devolución.
Se utiliza una declaración de retorno para finalizar la ejecución de la llamada de función y «devuelve» el resultado (el valor de la expresión que sigue a la palabra clave de retorno) a la persona que llama. Las sentencias posteriores a las sentencias de retorno no se ejecutan. Si la declaración de devolución no tiene ninguna expresión, se devuelve el valor especial Ninguno.
Sintaxis:
def fun(): statements . . return [expression]
Ejemplo:
Python3
# Python program to # demonstrate return statement def add(a, b): # returning sum of a and b return a + b def is_true(a): # returning boolean of a return bool(a) # calling function res = add(2, 3) print("Result of add function is {}".format(res)) res = is_true(2<5) print("\nResult of is_true function is {}".format(res))
Producción:
Result of add function is 5 Result of is_true function is True
Publicación traducida automáticamente
Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA