Python Funciones definidas por el usuario

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)
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *