funciones-en-micropython

Cómo usar funciones en MicroPython

  • 4 min

En este tutorial vamos a ver qué son y cómo usar funciones en MicroPython,, y como podemos usarlas para hacer nuestro código más limpio y modular.

Una función es un bloque de código que realiza una tarea específica y que puede ser llamado (o invocado) desde cualquier parte de un programa.

Esto nos permiten dividir un problema en partes más pequeñas, además de que nos evita tener que repetir el mismo código en varios sitios.

Las funciones son una característica básica de Python (al igual que en muchos otros lenguajes). Por supuesto, MicroPython incorpora la misma sintaxis y funcionalidad.

Sintaxis básica de una función en MicroPython

En MicroPython, las funciones se definen utilizando la palabra clave def. La sintaxis básica es la siguiente:

def nombre_de_la_funcion(parametro1, parametro2, ...):
    # Código que realiza la tarea
    return resultado
  • def: Indica que estamos definiendo una función.
  • nombre_de_la_funcion: Es el nombre que le damos a la función.
  • parametro1, parametro2, …: Son los valores que la función recibe como entrada. Pueden ser opcionales.
  • return: Especifica el valor que la función devuelve como resultado. No es obligatorio, pero es común en funciones que realizan cálculos o transformaciones.

Es muy aconsejable que el nombre de la función sea descriptivo e indique claramente la tarea que va a realizar.

Veamos cada uno de los componentes de la definición con unos ejemplos,

Función simple sin parámetros

Vamos a empezar con un ejemplo sencillo. Supongamos que queremos crear una función que imprima “¡Hola, mundo!” en la consola.

def saludar():
    print("¡Hola, mundo!")

# Llamar a la función
saludar()

Salida:

¡Hola, mundo!

En este caso, la función saludar no recibe parámetros y no devuelve ningún valor. Simplemente ejecuta el código que contiene cuando es llamada.

Función con parámetros

Ahora, vamos a crear una función que reciba un parámetro y lo utilice en su lógica. Por ejemplo, una función que salude a una persona por su nombre.

def saludar_persona(nombre):
    print(f"¡Hola, {nombre}!")

# Llamar a la función
saludar_persona("Juan")
saludar_persona("Ana")

Salida:

¡Hola, Juan!
¡Hola, Ana!

Aquí, la función saludar_persona recibe un parámetro llamado nombre y lo utiliza para personalizar el mensaje.

Función con valor de retorno

Las funciones también pueden devolver valores utilizando la palabra clave return. Esto es útil cuando queremos que la función realice un cálculo y nos devuelva el resultado.

def sumar(a, b):
    resultado = a + b
    return resultado

# Llamar a la función y almacenar el resultado
total = sumar(5, 3)
print(f"La suma es: {total}")

Salida:

La suma es: 8

En este ejemplo, la función sumar recibe dos parámetros (a y b), realiza la suma y devuelve el resultado. Luego, almacenamos ese resultado en la variable total y lo imprimimos.

Funciones lambda (anónimas)

Las funciones lambda es una sintaxis muy cómoda para definir funciones anónimas, en una sola línea. Son útiles para funciones pequeñas y operaciones simples.

cuadrado = lambda x: x ** 2
print(cuadrado(4))  # Salida: 16

Funciones dentro de funciones

En MicroPython, también podemos definir funciones dentro de otras funciones. Esto se conoce como funciones anidadas y es útil cuando queremos encapsular lógica que solo es relevante dentro de un contexto específico.

def calcular_impuesto(precio):
    def aplicar_iva(precio):
        return precio * 1.21  # IVA del 21%
    
    precio_con_iva = aplicar_iva(precio)
    return precio_con_iva

# Llamar a la función
total = calcular_impuesto(100)
print(f"Precio con IVA: {total}")

Que daría como salida,

Precio con IVA: 121.0

Aquí, la función aplicar_iva está definida dentro de calcular_impuesto y solo es accesible dentro de esta última.

Que puedas hacerlo no significa que debas abusar de ello

Ejemplos prácticos