Funciones de Python – Part 3

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: 

Python Functions

 

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

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

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

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

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

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 persona que llama a la función y devolver el valor o elemento de datos especificado 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))
Producción

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

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

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

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

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

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

I love GeeksforGeeks

Enlaces rápidos : 

Publicación traducida automáticamente

Artículo escrito por PranathiBadugu 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 *