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
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