Python Functions es un bloque de declaraciones que devuelven la tarea específica.
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 hacer las llamadas de función para reutilizar el código contenido en él una y otra vez.
Sintaxis de las funciones de Python:
Crear una función de Python
Podemos crear una función de Python usando la palabra clave def .
Python3
# A simple Python function def fun(): print("Welcome to GFG")
Llamar a una función de Python
Después de crear una función, podemos llamarla usando el nombre de la función seguido de paréntesis que contengan los parámetros de esa función en particular.
Python3
# A simple Python function def fun(): print("Welcome to GFG") # Driver code to call a function fun()
Producción:
Welcome to GFG
Definición y llamada de una función con parámetros.
Si tiene experiencia en C/C++ o Java, debe pensar en el tipo de devolución de la función y el tipo de datos de los argumentos. Eso también es posible en Python (específicamente para Python 3.5 y superior).
Función Python con parámetros Sintaxis:
def function_name(parameter: data_type) -> return_type: """Doctring""" # body of the function return expression
El siguiente ejemplo utiliza argumentos que aprenderá más adelante en este artículo para que pueda volver sobre ellos si no los entiende. Se define aquí para personas con experiencia previa en lenguajes como C/C++ o Java.
Python3
def add(num1: int, num2: int) -> int: """Add two numbers""" num3 = num1 + num2 return num3 # Driver code num1, num2 = 5, 15 ans = add(num1, num2) print(f"The addition of {num1} and {num2} results {ans}.")
Producción:
The addition of 5 and 15 results 20.
Algunos ejemplos más son los siguientes:
Nota: Los siguientes ejemplos se definen usando la sintaxis 1, intente convertirlos en la sintaxis 2 para practicar.
Python3
# some more functions def is_prime(n): if n in [2, 3]: return True if n % 2 == 0: return False r = 3 while r * r <= n: if n % r == 0: return False r += 2 return True print(is_prime(78), is_prime(79))
Producción:
False True
Argumentos de una función de Python
Los argumentos son los valores pasados dentro del paréntesis de la función. Una función puede tener cualquier número de argumentos separados por una coma.
En este ejemplo, crearemos una función simple para verificar si el número pasado como argumento a la función es par o impar.
Python3
# 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 to call the function evenOdd(2) evenOdd(3)
Producción:
even odd
Tipos de Argumentos
Python admite varios tipos de argumentos que se pueden pasar en el momento de la llamada a la función. Analicemos cada tipo en detalle.
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.
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)
x: 10 y: 50
Al igual que los argumentos predeterminados de C++, cualquier cantidad de argumentos en una función puede tener un valor predeterminado. Pero una vez que tenemos un argumento predeterminado, todos los argumentos a su derecha también deben tener valores predeterminados.
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.
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')
Geeks Practice Geeks Practice
Argumentos de longitud variable
En Python, podemos pasar un número variable de argumentos a una función usando símbolos especiales. Hay dos símbolos especiales:
- *args (argumentos que no son palabras clave)
- **kwargs (argumentos de palabras clave)
Ejemplo 1: argumento de longitud variable que no son palabras clave
Python
# Python program to illustrate # *args for variable number of arguments def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks')
Hello Welcome to GeeksforGeeks
Ejemplo 2: Argumentos de palabra clave de longitud variable
Python3
# Python program to illustrate # *kwargs for variable number of keyword arguments def myFun(**kwargs): for key, value in kwargs.items(): print("%s == %s" % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')
first == Geeks mid == for last == Geeks
string de documentación
La primera string después de la función se denomina string de documento o Docstring en resumen. Esto se utiliza para describir la funcionalidad de la función. El uso de docstring en funciones es opcional pero se considera una buena práctica.
La siguiente sintaxis se puede utilizar para imprimir la string de documentación de una función:
Syntax: print(function_name.__doc__)
Ejemplo: agregar Docstring a la función
Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x): """Function to check if the number is even or odd""" if (x % 2 == 0): print("even") else: print("odd") # Driver code to call the function print(evenOdd.__doc__)
Function to check if the number is even or odd
Declaración de devolución en la función de Python
La declaración de devolución de función se utiliza para salir de una función y volver a la función que llama y devolver el valor especificado o el elemento de datos a la persona que llama.
Sintaxis:
return [expression_list]
La declaración de devolución puede consistir en una variable, una expresión o una constante que se devuelve al final de la ejecución de la función. Si nada de lo anterior está presente con la declaración de devolución, se devuelve un objeto Ninguno.
Ejemplo: declaración de retorno de la función de Python
Python3
def square_value(num): """This function returns the square value of the entered number""" return num**2 print(square_value(2)) print(square_value(-4))
4 16
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 lo mismo que el paso de referencias en Java.
Python3
# Here x is a new reference to same list lst def myFun(x): x[0] = 20 # Driver Code (Note that lst is modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)
[20, 11, 12, 13, 14, 15]
Cuando pasamos una referencia y cambiamos la referencia recibida a otra cosa, la conexión entre el parámetro pasado y el recibido se rompe. Por ejemplo, considere el siguiente programa de la siguiente manera:
Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = [20, 30, 40] # Driver Code (Note that lst is not modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)
[10, 11, 12, 13, 14, 15]
Otro ejemplo para demostrar que el enlace de referencia se rompe si asignamos un nuevo valor (dentro de la función).
Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = 20 # Driver Code (Note that lst is not modified # after function call. x = 10 myFun(x) print(x)
10
Ejercicio: Intenta adivinar el resultado del siguiente código.
Python3
def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)
2 3
Funciones anónimas en Python Function
En Python, una función anónima significa que una función no tiene nombre. Como ya sabemos, la palabra clave def se usa para definir las funciones normales y la palabra clave lambda se usa para crear funciones anónimas. Por favor vea esto para más detalles.
Python3
# Python code to illustrate the cube of a number # using lambda function def cube(x): return x*x*x cube_v2 = lambda x : x*x*x print(cube(7)) print(cube_v2(7))
343 343
Función de Python dentro de Funciones
Una función que se define dentro de otra función se conoce como función interna o función anidada. Las funciones anidadas pueden acceder a las variables del ámbito adjunto. Las funciones internas se utilizan para que puedan protegerse de todo lo que sucede fuera de la función.
Python3
# Python program to # demonstrate accessing of # variables of nested functions def f1(): s = 'I love GeeksforGeeks' def f2(): print(s) f2() # Driver's code f1()
I love GeeksforGeeks
Enlaces rápidos :
- Cuestionario sobre las funciones de Python
- Diferencia entre método y función en Python
- Funciones de primera clase en Python
- Artículos recientes sobre las funciones de Python .
Publicación traducida automáticamente
Artículo escrito por PranathiBadugu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA