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.
Si quieres aprender más consulta,
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.
Si quieres aprender más consulta,
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
Si quieres aprender más consulta,
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
Control de un LED con funciones
Vamos a aplicar lo aprendido en un ejemplo práctico. Supongamos que estamos controlando un LED conectado a un microcontrolador usando MicroPython. Podemos crear funciones para encapsular la lógica de encender y apagar el LED.
from machine import Pin
# Configurar el pin del LED
led = Pin("LED", Pin.OUT)
def encender_led():
led.on()
def apagar_led():
led.off()
def parpadear_led(veces, duracion):
for _ in range(veces):
encender_led()
time.sleep(duracion)
apagar_led()
time.sleep(duracion)
# Llamar a las funciones
encender_led()
time.sleep(1)
apagar_led()
parpadear_led(5, 0.5)
En este ejemplo, hemos creado tres funciones: encender_led
, apagar_led
y parpadear_led
Es un ejemplo muy sencillo, porque cada funcion tiene únicamente una línea. Lo cuál puede que no tenga mucho sentido, pero es para ilustrar el funcionamiento de las funciones