Las funciones en Python (como en otros lenguajes de programación) son bloques de código reutilizables. A la hora de ejecutarlas es necesario invocarlas por su nombre. Las funciones pueden tener datos de entrada y de salida.

Anterior entrada: Python List

Funciones en Python

Definiendo funciones en Python

La sintaxis para crear una función es:

def identificador(arg):
   cuerpo

La palabra clave def indica que es una función. El identificador es el nombre de la función. Los paréntesis envuelven los parámetros de entrada, seguidos por 2 puntos. El cuerpo de la función comienza en la siguiente línea y debe tener un margen adicional.

En el siguiente ejemplo vemos la función add() que suma los 2 números pasados como argumentos (n1, n2). En el cuerpo encontramos la instrucción return que se encarga de retornar el resultado.

def add(n1,n2):
  return n1 + n2 

print(add(3,5)) # 8

Importante: no olvidar los márgenes dentro de la función.

Argumentos por defecto

Puedes crear funciones con argumentos por defecto. De este modo, tienes la opción de llamar a la función omitiendo el argumento por defecto, o bien invocarla pasándole todos los argumentos.

def add(n1, n2=3):
  return n1 + n2

print(add(5)) # 8
print(add(5, 5)) # 10

 Argumentos *args

Cuando el número de argumentos pasados a una función es incierto, puedes definir un parámetro con el símbolo *. De este modo, los argumentos de entrada son transformados en una tuple. Y puedes acceder a ellos mediante un índice.

def show_king(*kings):
  print(kings[1])

show_king("Melchor", "Gaspar", "Baltasar") # Gaspar

Diccionario de argumentos **kwargs

Definimos con la sintaxis **parámetro, una función que acepta como argumentos un indeterminado número de pares clave/valor. Esto se traduce en un diccionario de entrada.

def show_king(**kings):
  print(type(kings)) # <class 'dict'>
  print(kings["m"]) # Melchor
  
show_king(m = "Melchor", g = "Gaspar", b = "Baltasar") 

Funciones lambda

Las funciones lambda son conocidas como expresiones lambda o funciones anónimas porque no tienen nombre.

La sintaxis para definir una función lambda es:

lambda argumentos : expresión

En el siguiente ejemplo tenemos una expresión lambda que calcula el cuadrado de un número pasado como argumento.

square = lambda n : n * n
print(square(4)) # 16

Las expresiones lambda son útiles a la hora de ordenar listas en python. List tiene el método sort que ordena los elementos en orden alfabético por defecto. Sin embargo podemos modificar el modo de ordenamiento mediante el parámetro key de sort: sort(key= lambda …).

A continuación ordenamos los modelos de coches por el precio de venta, con la ayuda de un expresión lambda.

cars = ["Mercedes GT 50000", "Audi A4 20000", "BMW M3 39930", "Ford Mustang 60000"]
cars.sort(key= lambda model : model.split(" ")[-1])
print(cars)
# ['Audi A4 20000', 'BMW M3 39930', 'Mercedes GT 50000', 'Ford Mustang 60000']

 

 


0 comentarios

Deja una respuesta

Marcador de posición del avatar

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

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies