Funciones en Python
Definiendo funciones
# Funcion basica
def saludar(nombre):
return f"Hola {nombre}!"
# Con valor por defecto
def saludar(nombre="amigo"):
return f"Hola {nombre}!"
# Multiples parametros
def calcular_imc(peso, altura):
return peso / (altura ** 2)
# Retorno multiple
def estadisticas(numeros):
return min(numeros), max(numeros), sum(numeros)/len(numeros)
minimo, maximo, promedio = estadisticas([1, 2, 3, 4, 5])
Funciones Lambda
Las funciones lambda son funciones anonimas de una linea. Muy utiles en data science.
# Sintaxis: lambda argumentos: expresion
cuadrado = lambda x: x ** 2
cuadrado(5) # 25
suma = lambda a, b: a + b
suma(3, 4) # 7
# Uso comun con map, filter, sorted
numeros = [1, 2, 3, 4, 5]
# map: aplica funcion a cada elemento
cuadrados = list(map(lambda x: x**2, numeros))
# [1, 4, 9, 16, 25]
# filter: filtra elementos
pares = list(filter(lambda x: x % 2 == 0, numeros))
# [2, 4]
# sorted: ordenar con criterio
personas = [{'nombre': 'Ana', 'edad': 25},
{'nombre': 'Luis', 'edad': 30}]
ordenado = sorted(personas, key=lambda p: p['edad'])
Funciones utiles integradas
numeros = [3, 1, 4, 1, 5, 9, 2, 6]
# Estadisticas basicas
sum(numeros) # 31
min(numeros) # 1
max(numeros) # 9
len(numeros) # 8
# Enumerate: indice + valor
for i, num in enumerate(numeros):
print(f"Indice {i}: {num}")
# Zip: combinar listas
nombres = ['Ana', 'Luis', 'Maria']
edades = [25, 30, 28]
for nombre, edad in zip(nombres, edades):
print(f"{nombre} tiene {edad} anos")
# Any/All
any([False, False, True]) # True
all([True, True, False]) # False